在JavaScript文件中设置变量值
我在服务器上有一个Python脚本和一个JavaScript文件。在这个Python脚本里,我想把一个变量的值设置成我那个.js文件里某个函数的输出结果。
这样做可以吗?如果可以的话,应该怎么做呢?
谢谢!
4 个回答
1
你可以直接在你的Python脚本中打印出JavaScript代码块,并且可以在这些代码块中设置一些变量,这些变量可以在外部脚本中使用。
<script language="javascript">var myvalue="data";</script>
如果使用simplejson库,你甚至可以打印数组和其他类似的东西。
只要确保你在JavaScript文件中的代码是放在一个函数里,并且这个函数是在整个页面加载完成后被调用,或者把JavaScript文件放在页面的最后面加载就可以了。
1
这不太可能,因为JavaScript通常是在用户的电脑上运行,而Python则是在服务器上运行。
如果你需要在用户的电脑上运行代码,可以让它发送一个AJAX请求到一个Python脚本,获取你需要的结果。如果不需要在用户的电脑上运行,我建议你把它重写成Python代码。
4
作为Macha提议的另一种选择(使用Ajax查询),你也可以动态创建JavaScript文件。
当页面加载时,JavaScript也会被加载。在你的页面中,有一个指向JavaScript的URL,格式是
<SCRIPT LANGUAGE="JAVASCRIPT" SRC="mycode.js" TYPE="TEXT/JAVASCRIPT">
关键在于让服务器不要提供一个静态文件“mycode.js”,而是提供例如mycode.py的输出。你的标签看起来应该是
<SCRIPT LANGUAGE="JAVASCRIPT" SRC="mycode.py" TYPE="TEXT/JAVASCRIPT">
而Python脚本可能会像这样(简化版):
var_value = "whatever you want the variable to be"
jsfile = open("myscript.js", "rb")
for line in jsfile:
print line.replace("$MYVAR$", var_value)
jsfile.close()
简单来说,你有了当前的js文件,但你会把它当作Python脚本的模板。你可以用replace方法把变量替换成它的值。
这可能不是最优雅的解决方案,但应该能工作,而且理解起来也不难。
别忘了你的服务器需要知道怎么处理Python脚本哦 :)