我们使用JsApin进行插件和页面js之间的双向通信。 有时这个对象停止工作。JsApi有时会被破坏
下面是我们正在做的事情:
<object type="...">
...
<param name="onload" value="pluginloaded" />
...
</object>
var myObj = {
element: ..., // reference to the dom element for the object tag
...
}
function pluginloaded(jsapi) {
myObj.jsapi = jsapi;
}
正如你可以看到,我们保持一个参照这两个DOM对象元素和被传递到的onload方法JSAPI对象。
当试图在插件(或属性)上执行一个方法时,它将首先尝试myObj.jsapi.method()
,如果失败,则返回'myObj.element.method()`,如果失败则会报告。统计数据显示它并不经常发生,但确实发生,尽管我不知道如何重现它,只是有时会发生。
任何想法可能导致此对象不可用的原因?从js的角度来看,jsapi对象是未定义的,并且object元素没有从插件公开的方法/属性。
谢谢。
如果您使用从pluginloaded函数调用中保存的jsapi或访问html元素本身的方法,是否有关系? – taxilian
不,这并不重要,问题是没有一个工作(发生此问题时),jsapi对象未定义,并且在元素本身上添加的方法/属性未定义。任何想法为什么? –