代码在shell中运行,但提供'可以't查找变量'从文件运行时出错
Code runs in shell but gives 'Can't find variable' error when run from a file
我用这家伙的代码创建了一个显示输入值的表盘。
当我将每一行复制到Python外壳时,它运行得很漂亮。所以我认为是时候给它添加更多的功能了。但是在shell中运行的完全相同的代码在从文件运行时不起作用。它为变量"showHr"提供了"找不到变量"错误
代码为:
import os
import gobject
import gtk
import pygtk
import sys
import webkit
pygtk.require('2.0')
URL = "/home/antimony/Oscillator Code/dials2-js.svg"
gobject.threads_init()
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.set_resizable(True)
window.connect("destroy", lambda window, event: gtk.main_quit())
web_view = webkit.WebView()
web_view.open(URL)
vbox = gtk.VBox(False, 0)
vbox.add(web_view)
window.add(vbox)
window.show_all()
hr1 = 23000/(1*500)
web_view.execute_script("showHr(%d)" % hr1)
gtk.main()
它本质上是将hr1的值提供给showHr,showHr是SVG文件中的一个函数。
功能是:
function showHr(newBpm) {
bpmTarget = newBpm;
}
我对SVG一无所知,所以我不知道哪里出了问题,也不知道是SVG文件的错还是什么。为什么它在外壳中运行时却能找到"showHr"?:S
更新1-我对另一个程序也有同样的问题。这次是PyQt4。那么,问题可能与代码无关。我的Python外壳有问题吗?如果是的话,有人能告诉我怎么修吗?——好了,这个问题解决了。我可能做了一些非常愚蠢的事情,比如运行一个不同的文件或其他什么,因为过了一段时间我尝试它时它就起作用了。我不知道我做错了什么。
但是前面的问题仍然存在,我需要帮助
更新2-似乎出现错误的代码行是:
web_view.execute_script("showHr(%d)" % hr1)
我知道,要用Javascript调用一个函数,您应该将其写成"showHr(150);"(事实上,当在SVG文件中调用时,这个调用是有效的)。即使在修改代码以读取之后
web_view.execute_script("showHr(%d);" % hr1)
它不起作用。它仍然给出相同的错误:
Message: console message: undefined @0: ReferenceError: Can't find variable: showHr
不管怎样,把它指向那个SVG文件?
我无法告诉你原因,但我自己也遇到了类似的问题。经过一番修补,我发现:
web_view.execute_script("'showHr(%d)'" % hr1)
相关文章:
- Javascript 变量使用 jquery 查找变量
- "可以't查找变量:cordova”;
- "可以't查找变量:window“;在suds.js中
- ReferenceError:Can't查找变量:functionName
- MongoDB MonkAPI根据数据库请求之外可用的查找结果设置变量
- 在 for 循环中查找变量的迭代总和
- 如果字符串保存在变量中,如何查找包含字符串的ID
- 敲除嵌套数组分页,如何跟踪变量或查找父记录
- 按名称查找变量
- ReferenceError:Can't在AngularJS中查找变量:xxxService,Karma
- JQuery可以't从单独的javascript文件中查找变量
- 查找任何未定义的变量并从url字符串中隐藏
- 代码在shell中运行,但提供'可以't查找变量'从文件运行时出错
- 在(跨浏览器)JavaScript 中,何时必须在局部范围内缓存变量查找
- Javascript:作用域链/变量查找性能
- 查找“包含”中的多个值变量
- 如何使用变量查找和更改对象属性
- 编码对象的Django模板变量查找
- 如何使用主JSON中的变量查找第二个JSON数据集-使用Handlebars
- 使用两个变量查找数组值