为什么我从flash到Javascript的调用在IE9中失败

Why does my call from flash to Javascript fail in IE9?

本文关键字:调用 IE9 失败 Javascript flash 为什么      更新时间:2023-09-26

我有几个按钮在我的flash应用程序调用两个不同的javascript函数。它们可以在除IE9以外的所有浏览器中工作(我没有尝试过更早的ie)。我调用函数的代码是这样的:

ExternalInterface.call(
        "myLovelyFunction",
        string1, string2);

和JS中的代码看起来像这样:

function myLovelyFunction(string1, string2) {
    window.open('https://twitter.com/share?url=http%3A%2F%2Fwww.mysite.com%2Fapage.php&via=atwitteraccount&text=Some%20text%22&related=atwitteraccount',
    'windowname',
    'height=290,width=510');
}

在IE9中,这个函数什么都不做,但是控制台会报错:

SCRIPT438: Object doesn't support property or method 'SetReturnValue' 
index.php, line 1 character 1

第1行,第1个字符显然没有特别指向。

我可以通过切换兼容性视图使其正常工作,尽管控制台错误并没有消失。

是否有任何关于IE9导致这一点,更重要的是,我如何解决这个问题?

我也有同样的问题。我使用了以下代码:

    <object type="application/x-shockwave-flash" data="/files/banners/64/64_300x250.swf" width="300" height="250">
      <param name="movie" value="/files/banners/64/64_300x250.swf"/>
      <param name="wmode" value="transparent"/>
    </object>

我只是嵌入flash与常规对象标签(没有SWFObject和没有嵌入回退)。我的flash文件调用JS函数窗口。通过ExternalInterface打开:

ExternalInterface.call("window.open", url, target, features);

不工作的地方:上面的链接建议将其更改为"document"。打开",这不起作用。此外,试图强制页面以IE-8模式呈现也不起作用。例如:

<meta http-equiv="X-UA-Compatible" content="IE=8" />

什么起作用了:只需在对象标签中添加"name"answers"id"就解决了问题。例如:

<object type="application/x-shockwave-flash" data="/files/banners/64/64_300x250.swf" width="300" height="250" name="flash_object" id="flash_object">

也有同样的问题,下面的链接帮你解决了

http://msdn.microsoft.com/en-us/library/gg622942%28v=VS.85%29.aspx