Processing.js没有'不允许在firefox中绑定外部javascript
Processing.js doesn't allow external javascript bind in firefox
我正在尝试将数据发送到处理脚本。但由于某种原因,下面的变量pjs绑定到画布"competence1"并输入第一个if语句,但随后bindJavascript(this)-调用返回错误,但仅在firefox中返回。(适用于铬):
[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;OBS!bindJavascript(this)-方法存在于画布标签
通过将我的所有脚本封装在可变映射中,并使用第二种方法调用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);
当然,添加参数,这样它就可以在自己的执行过程中保持该值。所以处理工作得很好,我应该更经常地使用闭包,这就是解决方案。
我也遇到了同样的问题。我使用了和你几乎相同的JS(这是我从Pomax教程中得到的),它运行得很好。然而,当我添加以下预加载指令(加载背景)时,我的initProcessing函数突然停止工作。
/* @pjs preload="metal_background.jpg"; */
错误消息相同:pjs.bindJavascript不是函数
在调试时,我可以看到pjs对象确实没有公开bindJavaScript函数,尽管在我的PDE文件中声明了一个函数。
事实证明,这完全取决于时机。。。预加载减缓了处理对象的初始化速度,因此在250毫秒循环的第二次循环中,pjs对象存在,但还没有bindJavaScript函数。
我不能100%确定Processing.js是如何构建这个对象的,但在这种情况下,一个简单的解决方案只是检查是否真的定义了bindJavaScript!我将代码更改为以下内容:
var bound = false;
function initProcessing() {
var pjs = Processing.getInstanceById('mySketchId');
if(pjs != null) {
if(typeof(pjs.bindJavaScript) == "function") {
pjs.bindJavaScript(this);
bound = true;
}
}
if(!bound) setTimeout(initProcessing, 250);
}
在这之后,它工作得很好!
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- 无法通过数组映射绑定
- 主干-不管怎样,检查事件以前是否绑定过
- 用于搜索的聚合物嵌套绑定
- Angular:更新一次性绑定的数据
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- react.js中的密钥绑定
- 使用regex的jquery keydown绑定不会验证撇号和句点
- 将事件处理程序绑定到任何可能的事件
- AngularJS指令只识别双向绑定类型
- Telerik rad组合框多列数据绑定
- 对API数据使用声明性绑定
- 如何销毁/删除/取消绑定SnapSVG.js
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- 数据绑定:'系统Char'不包含名为'xxxxx'
- 当绑定到多个元素时,Firefox 中的缓慢鼠标移动事件
- 绑定事件在Chrome上失败,但在浏览器返回时在Firefox中正常
- Processing.js没有'不允许在firefox中绑定外部javascript
- 使用Greasemonkey 2.0绑定到Firefox 30中unsafeWindow的事件
- 通过Selenium Webdriver (JS绑定)与Firefox开发工具进行编程交互