jquery – 未捕获的错误:调用NPObject上的方法时出错

前端之家收集整理的这篇文章主要介绍了jquery – 未捕获的错误:调用NPObject上的方法时出错前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的页面上有一个Flash视频如下:
<script type="text/javascript">
var flashvars = {
};
var params = {
    movie: "VideoMain.swf",quality: "high",bgcolor: "#000000",allowScriptAccess: "always",wmode: "transparent"
};
var attributes = {
  id: "VideoMain",name: "VideoMain",classid: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",width: "100%",height: "100%"
};
swfobject.embedSWF("./video/VideoMain.swf","myVideoContent","100%","11.0.0","",flashvars,params,attributes);
</script>

<div id="myVideoContent">
    <h1>Oooppsss....you need flash or a newer version of flash</h1>
    <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>
</div>

将上述内容附加到#VideoMain中

然后我有以下:

$('#X.click').click(function(e) {
    var flash = document.getElementById("VideoMain");
    flash.sendToActionScriptPublishVideo(true);
});

这会失败,并显示控制台错误

Uncaught Error: Error calling method on NPObject.
(anonymous function)
jQuery.event.dispatchjquery.js:3256
jQuery.event.add.elemData.handle.eventHandlejquery.js:2875

任何想法在这里可能是错误的?谢谢

解决方法

NPObject是通过浏览器暴露的任何“外部”代码的“接口”(外部的,如在JavaScript的外部,否则它可以是浏览器自己的对象,例如全局窗口对象)。嵌入式Flash插件肯定会实现这个“接口”(所以浏览器将其视为另一个NPObject)。

当你调用该对象的一个​​方法时,有几个函数调用的序列化传递给对象的数据返回浏览器的运行时。很难说明确是什么没有工作,但一些常见的原因包括

>插件没有公开(或没有注册)一个方法与您尝试调用名称。>插件是以不允许交叉脚本的方式嵌入的(限制可能在两边,Flash要求调用来自受信任的域,并且您可以通过对象标记中的设置限制插件与环境通信。>在通过JavaScript调用插件代码中抛出的错误 – 我不确定是否会有同样的错误,但很可能。

猜你在找的jQuery相关文章