javascript - Processing.js 不允许在 Firefox 中绑定(bind)外部 javascript

标签 javascript firefox canvas processing.js

我正在尝试将数据发送到处理脚本。但由于某种原因,下面的变量 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/

相关文章:

javascript - 为什么我导入js文件的地方会影响我的调用?

javascript - 通过导入选择对象属性时出现问题

javascript - 调用 RegisterStartupScript 时出现 "Object expected"错误

html - 当我在 Firefox 中单击它时,如何删除图像按钮上的虚线?

javascript - 在 Javascript 的 if 语句中更改变量的值

java - Webdriver - Firefox 56(64 位)更新后超时不起作用

firefox - 如何更改 Webdriver Firefox 连接到本地主机的端口?

javascript - 如何使 Canvas 的不同形状可拖动且其特定区域可放置在同一 Canvas 中

javascript - 如何为网页上的文本绘制动画?

html - 在文本后面绘制褪色背景/发光