我正在尝试将数据发送到处理脚本。但由于某种原因,下面的变量 pjs 绑定(bind)到 Canvas “competence1”并进入第一个 if 语句,但随后 bindJavascript(this) 调用返回错误,但仅限于 Firefox。 (在 Chrome 中完美运行):
[pjs.bindJavascript 不是函数]
var bound = false;
function initProcessing(){
var pjs = Processing.getInstanceById('competence1');
if (pjs != null) {
// Calling the processing code method
pjs.bindJavascript(this);
bound = true;
//Do some work
}
if(!bound) setTimeout(initProcessing, 250);
}
环境:Mac OS X - Lion; 哦! bindJavascript(this)-方法存在于canvas标签中加载的pde脚本中
最佳答案
通过将所有脚本包装在变量映射中并使用第二种方式调用 setTimeout,我可以跟踪每个状态并控制结果。
所以总结一下-->
var ex = {
init : function(canId){
var canId = canId;
// check the if bound
// bind in this closure
// set new timer
}
}
设置超时-->
setTimeout('ex.init("'+canId+'")', 2000);
当然还要添加参数,以便它可以在自己执行期间保存该值。所以处理工作正常,我应该更频繁地使用闭包,这就是解决方案。
关于javascript - Processing.js 不允许在 Firefox 中绑定(bind)外部 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9002751/