SWFObject无法在IE中嵌入flash

时间:2011-04-22 18:23:23

标签: javascript internet-explorer swfobject

尝试了4个小时来解决这个问题。 我有一个非常奇怪的问题:除了IE之外,SWFObject在所有浏览器中都嵌入了flash。 我将每个输出div的HTML打印到textarea中,发现在IE中,SWFObject只嵌入了根“object”标签,没有任何内部标签(例如param name =“movie”value =“myVal”),所以我想这就是为什么我在IE中获得“未加载电影”的原因。

我的代码如下:


window.embedFlash=function (properties)
{
    swfobject.addDomLoadEvent(function ()
    {
        swfobject.createSWF(
        {
            data: properties.data,
            width: properties.width||'100%',
            height: properties.height||'100%'
        },
        {
            allowScriptAccess: 'always',
            allowFullScreen: 'true',
            allowNetworking: properties.allowNetworking||'all',
            flashvars: properties.flashvars||null,
            wmode: properties.wmode||null,
            menu: properties.menu||'false'
        },properties.id);
    });
};

2 个答案:

答案 0 :(得分:0)

通常“未加载电影”表示Flash Player AVM实例已启动,但无法找到您提供的URL。 此外,您的SWF版本可能与IE中的Flash Player版本不同步。

检查是否有任何404,并检查编译的SWF版本是否可以在安装到IE的FP版本中运行。

答案 1 :(得分:0)

您基本上正在重新创建swfobject.embedSWF方法,因此我建议您重新格式化代码以使用swfobject.embedSWF,因为它得到广泛支持并经过严格测试。我在代码和embedSWF之间看到的唯一区别是:

  • 您的版本检测不足 代码(embedSWF要求你 指定Flash的最低版本 播放器
  • 缺少快速安装 代码(可以在...中设置为false) 如果你不感兴趣,可以使用embedSWF
  • 你的flashvars变量可能是 格式化为字符串,而embedSWF 期望一个包含键/值对的对象
  • swfobject.embedSWF默认情况下会在domload上调用,因此您不需要编写ondomload处理程序

这是对代码的快速重新格式化。如果您的flashvars以字符串形式发送,它将失败:

window.embedFlash=function (properties)
{

    var flashvars = properties.flashvars||false;
    var params = {
       allowFullScreen: 'true',
       allowNetworking: properties.allowNetworking||'all',
       allowScriptAccess: 'always',
       menu: properties.menu||'false',
       wmode: properties.wmode||"window"
    };
    var attributes = {};

    swfobject.embedSWF(properties.data, 
                       properties.id, 
                       properties.width||'100%', 
                       properties.height||'100%', 
                       "9", 
                       false,//URL for expressinstall, if available 
                       flashvars, 
                       params, 
                       attributes);

};