如果我真的很抱歉,我会道歉-我一直在早上大部分时间都在寻找答案,但是也许我搜索的字词有误。我正在使用带有Python代码的Google App Engine来设置我的webapp。我设法使用以下HTML代码设置了基本的页面结构:
main_html = """
<HTML>
<HEAD>
<LINK rel="stylesheet" type="text/css" href="static/css/main.css">
</HEAD>
<BODY>
<DIV class="wspace">
<BR>
</DIV>
<DIV class="header">
<FONT class="logoFont">Logo Text</font>
</DIV>
<DIV class="maincontainer">
<DIV class="sidebar" id="leftsidebar">
<SCRIPT>
var lsCanWid = document.getElementsByTagName("div"["leftsidebar"].offsetWidth
var lsCanHei = document.getElementsByTagName("div")["leftsidebar"].offsetHeight
</SCRIPT>
</DIV>
<DIV class="sidebar" id="rightsidebar">
<SCRIPT>
var rsCanWid = document.getElementsByTagName("div")["rightsidebar"].offsetWidth
var rsCanHei = document.getElementsByTagName("div")["rightsidebar"].offsetHeight
</SCRIPT>
</DIV>
<DIV class="mainscreen" id="mainscr">
<SCRIPT>
var mainCanWid = document.getElementsByTagName("div")["mainscr"].offsetWidth
var mainCanHei = document.getElementsByTagName("div")["mainscr"].offsetHeight
</SCRIPT>
%(MAINCONTENT)s
</DIV>
</DIV>
<DIV class="footer">
Footer Text
</DIV>
<DIV class="wspace">
<FONT class="crnotice">Copyright Notice Text</FONT>
</DIV>
</BODY>
</HTML>
"""
我已经测试了javascript变量,这些变量完全按计划工作(例如,lsCanWid返回左侧边栏的宽度)。
然后,我在Python中获得了以下代码:
class MainHandler(webapp2.RequestHandler):
def get(self):
lsCanWid = self.request.get('lsCanWid')
lsCanHei = self.request.get('lsCanHei')
rsCanWid = self.request.get('rsCanWid')
rsCanHei = self.request.get('rsCanHei')
mainCanWid = self.request.get('mainCanWid')
mainCanHei = self.request.get('mainCanHei')
temp_str = str(lsCanWid)
self.response.write(main_html %{"MAINCONTENT": temp_str})
app = webapp2.WSGIApplication([
('/', MainHandler)
], debug=True)
我以前没有尝试在“获取”中使用self.request.get,所以我不确定这是否是问题。如果将temp_str替换为其他字符串,则python代码可以正常工作,所以这不是我的问题所在。我真的很感激这里的任何帮助!
参考方案
简而言之-您没有将这些值发送回处理程序,而是需要将它们添加到查询字符串中或将其发布回。
Javascript运行浏览器。在浏览器中呈现页面后,您的后端代码就没有连接了。为了使您的Python代码从浏览器中了解所有内容,您必须将其发送回代码。这就是HTTP的工作方式。它是一个“请求/响应”周期,并且响应(您发送到浏览器的内容)完成后就没有连接。
因此,要将这些值发送回您的代码,您需要将它们作为查询字符串的一部分附加到请求中,例如/foo?lsCanWid=3&lsCanHei=4
(依此类推)。您将需要使用javascript构建此URL,然后将其添加到必须单击的链接中-然后,在下一个请求(一旦单击此新链接)后,您的Python代码将接收值。
我有一个自定义类型的推荐信,并且帖子很少。我正在尝试创建一个按年份显示帖子的手风琴。因此,当您单击年份时,它将显示该年份的所有帖子(请参见下面的屏幕截图)。我已经有点用了,问题是当我单击年份时,它仅显示该年的一篇帖子。这是代码-> https://pastebin.com/3F98dcEU <?php get_header();?> <…
在<select>元素上忽略了DDSlick的“ selected”属性 - javascript我正在使用以下jQuery插件:http://designwithpc.com/Plugins/ddSlick要在下拉列表中显示可选图像,请选择框。它与我尝试使用已选择的选项加载html时非常有用,但在DDSlick中未选择此选项(因此它仅显示第一个选择的选项)。如何转换:<select class="homepage_icon" …
在PHP文件中调用javascript函数并在加载HTML文件之后? - javascript我需要在我的php中调用js函数,但无法正常工作。有人可以告诉我我在做什么错吗?我该如何轻松地做到这一点?谢谢!我有三个文件: mail.php负责发送$ _POST的内容(工作正常)。我调用我的javascript函数来切换模式,具体取决于邮件是否已发送。 <? ... $response = $sendgrid->send($email);…
单击<span>标记以运行JQuery javascript函数[重复] - javascriptThis question already has answers here: Event binding on dynamically created elements? (23个答案) 2年前关闭。 我使用PHP这样创建跨度。if ($subnetkey == 1 ) { echo ("<span class='subnetke…
用多个通配符替换正则表达式可在PHP中工作,而不能在JavaScript中工作 - javascript我正在尝试为两个Markdown解析器实现中心对齐:在Parsedown的PHP中(成功)在Bootstrap Markdown的JavaScript中(未成功)我遵循并找到最简单的方法是使用最终的HTML输出,只需将内联样式捕捉到标签上即可。以下正则表达式可以满足我的需要,它会根据需要将style="text-align:center;"…