javascript – 如何修复:“NPMethod调用非NPObject包装的JSObject”错误?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何修复:“NPMethod调用非NPObject包装的JSObject”错误?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1996字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 如何修复:“NPMethod调用非NPObject包装的JSObject”错误?](/upload/InfoBanner/zyjiaocheng/747/28c3f27a77e045af81d30b53228db116.jpg)
HI,
我试图从javascript调用flash对象中定义的方法
(firefox-3.0 / Linux)并获得异常:“NPMethod呼吁
非
NPObject包装了JSObject“.
如果我在window.document.flash_object.func()上使用eval它会抛出
“NPMethod调用了非NPObject包装的JSObject”.
如果,如果我在页面的侧面定义一个javascript函数给定
下面:
function myFunc(){
return flash_object.func();
}
然后做一个window.document.myFunc()的eval工作正常.
我通过一个名为Selenium的测试框架来运行这两个版本.
[eval(window.document.flash_object.func())和
的eval(window.document.myFunc())].
问题似乎是在不传递’this’引用的情况下调用flash-object方法的问题.下面是重现此问题的示例html / js代码:“NPMethod调用非NPObject包装的JSObject”.
<script>
function changeColor() {
mymovie.changeColor();
}
function getColorNP() {
var func = mymovie.getColor;
func();
}
</script>
<button type="button" onclick="getColorNP();">getColorNP</button>
<button type="button" onclick="getColor();">getColor</button>
getColorNP throws the exception
Error: NPMethod called on non-NPObject wrapped JSObject!
Source File: http://my.host/Colors/colors.html
getColorNP throws the exception
Error: NPMethod called on non-NPObject wrapped JSObject!
Source File: http://my.host/Colors/colors.html
现在,向javascript大师提问:
给定flash对象和方法名称,如何在该对象上调用该方法.可以说,一个函数有两个参数:一个flash对象,一个方法名称为string.我想在该函数内的object.method()上做一个eval.这是可能的,如果可以的话,请你解释一下如何做到这一点.
由于flash对象的方法不是标准的javascript函数,我认为它不可能通过bind()进行绑定.还有其他选择吗?
谢谢,
钱德拉
解决方法:
当您尝试将flash函数(本机代码)设置为某个变量然后调用此变量时,会发生此错误.
举个例子来看看你的功能:
function getColorNP() { // this will call error
var func = mymovie.getColor;
func();
}
function getColorNP() { //this will work
mymovie.getColor();
}
如果你需要将flash函数保存到某个变量,你应该用lambda函数包装它.像这样:
function getColorNP() { // this will work also
var func = function(){mymovie.getColor()};
func();
}
所以当你在javascript中使用flash功能时,你不应该制动链接链.
内容总结
以上是互联网集市为您收集整理的javascript – 如何修复:“NPMethod调用非NPObject包装的JSObject”错误?全部内容,希望文章能够帮你解决javascript – 如何修复:“NPMethod调用非NPObject包装的JSObject”错误?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。