ExternalInterface的不工作在IE(ExternalInterface not wor

2019-07-30 14:55发布

我试图调用从JavaScript中的Flash对象的操作:

如:

function testExternalConnection(str:String):Void {
    _root.debug.htmlText = "testExternalConnection ok";
}
ExternalInterface.addCallback("testExternalConnection", this, testExternalConnection);

JS:

var movie = getFlashMovie("ap1_mod_hidden")
movie.testExternalConnection();

function getFlashMovie(movieName) {
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    return (isIE) ? window[movieName] : document[movieName];
}

我包括使用swfobject的我的闪存:

<span id="ap1_mod_hidden"></span>
<script type="text/javascript">
    // Setting up the flash player
    var flashvars = {
        mp3Path: "stop",
        artistName : "",
        trackName : ""
    };
    var params = {
        codebase: 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
        src: '/flash/ap1_mod.swf',
        quality: 'high',
        pluginspage: 'http://www.macromedia.com/go/getflashplayer',
        scale: 'showall',
        devicefont: 'false',
        bgcolor: '#999999',
        name: 'ap1_mod',
        menu: 'true',
        id: 'mod',
        allowFullScreen: 'false',
        allowScriptAccess:'always', //sameDomain
        movie: '/flash/ap1_mod.swf',
    wmode: "transparent",
    allowfullscreen: "true"
    };

    swfobject.embedSWF("/flash/ap1_mod.swf", "ap1_mod_hidden", "300", "300", "9.0.0", false, flashvars, params);
</script>

没有疯狂的在这里。 因此,此代码工作正常,在一切,但无法在Internet Explorer(一个惊喜:\)。 它得到正确的电影对象,但它不能够调用ExternalInterface的功能。 它说,财产是没有定义。

我看着谷歌和SO没有成功...任何帮助,将不胜感激!

Answer 1:

我相信你要使用的ID,而不是要添加的SWF过这样的div:

function getFlashMovie(movieName) {
    return swfobject.getObjectById("mod");
}

因为你设置“国防部”作为id。



文章来源: ExternalInterface not working in IE