javascript - 在 IE 中使用 Javascript 获取 Flash 电影

标签 javascript flash internet-explorer cross-browser swfobject

我有一部 Flash 电影,需要使用 JavaScript 获取。

下面是我如何使用 swf object 嵌入它:

<div id="ap1_mod"></div>
<script type="text/javascript">
    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: '/public/flash/ap1_mod.swf',
        quality: 'high',
        pluginspage: 'http://www.macromedia.com/go/getflashplayer',
        scale: 'showall',
        devicefont: 'false',
        bgcolor: '#999999',
        name: 'ap1_mod',
        menu: 'true',
        allowFullScreen: 'false',
        allowScriptAccess:'always', //sameDomain
        movie: '/public/flash/ap1_mod.swf',
    wmode: "transparent",
    allowfullscreen: "true"
    };

    swfobject.embedSWF("/public/flash/ap1_mod.swf", "ap1_mod", "400", "50", "9.0.0", false, flashvars, params);
</script>

这是我尝试访问它的方式:

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

像往常一样,它在 Firefox 和 Safari 中运行良好,但在 IE 中出现问题。如果我添加一个警报:显示返回 getFlashMovie 的内容,我得到“未定义”。

有什么想法吗?

非常感谢

最佳答案

根据文档,embedSWF 将您指定的元素替换为对象,因此您只需使用:

var movie = document.getElementById("ap1_mod");

我还没有实际检查过,但是因为 div 元素被替换为 object 元素,所以它可能没有在 IE 中重新注册为 window 的属性。

关于javascript - 在 IE 中使用 Javascript 获取 Flash 电影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1110617/

相关文章:

javascript - Internet Explorer 中未定义 JS 函数

javascript - Sketch.js : Change default brush size

javascript - 除了第一个循环之外,文件上传不会在以下循环中触发

actionscript-3 - 碰撞检测套件包装错误

php - VideoJS Flash 版本不播放文件(PHP 直通流)

c# - IE9 工具栏按钮的自定义图标

javascript - Jquery/Javascript : Display a random image from an array by pressing a button

javascript - 更改单个元素的选定文本颜色

java - Java EE 或 Flash 中的开源聊天应用程序?

CSS 溢出 :hidden not working in IE and position:relative makes no difference