HTML:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%" id="testqwe">
<param name="movie" value="http://www.mydomain.com/swf/testqwe.swf" />
<param name="bgcolor" value="#ffffff" />
<param name="allowScriptAccess" value="always" />
<embed name="testqwe" src="http://www.mydomain.com/swf/testqwe.swf" width="100%" height="100%" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
Javascript:
try {
if(navigator.userAgent.indexOf('MSIE') != '-1') {
var embed = jQuery('#testqwe')[0];
}
else {
var embed = jQuery('#testqwe embed')[0];
}
}
catch(e)
{
log({error:e});
}
的ActionScript:
private function jsAPI():void{
ExternalInterface.addCallback("callfromjs",callfromjs);
}
private function callfromjs(js:Object):void{
//code here
}
当我试图调用embed.callfromjs()时,它表示Object不支持此属性或方法。
我做错了什么?我认为问题出在html标记中。可能遗漏了一些东西,或者我在某个地方犯了错误。
它在Firefox / Chrome / Opera中运行,但并非在所有IE中都有效。
帮助!花了大约4-5个小时而没有......
答案 0 :(得分:2)
尝试为您的embed标记添加id属性,并为您的对象标记添加name属性。我以前遇到过这个问题,在我看来修复就是这样的。
答案 1 :(得分:2)
我正在使用jquery所以我使用插件因为它们非常容易。
我不得不从jquery.flash插件切换到jquery.SWFObject插件。因为jquery.flash插件根本不起作用,在刷新或导航离开页面时会出现同样的错误。
现在我正在使用SWFObject jquery插件,并将内部回调名称从“stop”(保留字)更改为“kill”,一切都开始正常工作。似乎已经解决了问题。
Firefox似乎工作正常并覆盖了该功能,IE崩溃了(这并不奇怪。)
IE给了我以下错误: “对象不支持此属性或方法”第48行第3行
我写了一篇关于jquery.flash插件问题的Luke(作者)。我认为他没有使用可能导致失败的两个包装纸,肯定不知道。 IE FAIL。
fwiw,当我使用jquery.flash插件时,当我离开/离开页面时,IE给了我同样的错误。
“对象不支持此属性或方法”第53行char 3。
注意:插件之间的细微差别是使用“src”而另一个使用“swf”来声明SWF路径。
希望这有用。
答案 2 :(得分:0)
试试这个:
var getFlash = function(name) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[name];
} else {
return document[name];
}
};
答案 3 :(得分:0)
您是否验证了if
中正确的阻止来自IE?
您是否尝试使用SWFObject加载SWF? Persoanlly,我总是使用动态方法向页面添加内容。这将消除浏览器嗅探的需要。 SWFObject也有API,如果你真的需要使用静态发布,可以通过id调用flash应用程序。
顺便说一下,即使它已被弃用,请查看jQuery.browser而不是自己解析UA字符串。 SWFObject API还有一个UA解析器和一些你可以使用的标志。
答案 4 :(得分:0)
我想在上面添加Shanimal的帖子:我们发现IE8特别有几个关键字,无法通过flash的ExternalInterface.addCallback添加。添加这些关键字将导致
“对象不支持此属性或方法JScript - 脚本块,第48行字符3”
调用第一个时出现错误。有点令人困惑的是,所有其他方法都没问题,外部界面将继续运行,前提是您不要使用这些关键字调用方法。
到目前为止确定的关键字列表:停止,缩放,平移。
IE9和其他浏览器似乎很好。如果您收到此错误,请尝试重命名回调。 IE8不是很可爱吗? ; - )