IE是唯一的浏览器(或版本)不允许Flash对象操纵?(Is IE The Only Browser

2019-09-17 00:03发布

我试过多种方式来编辑的Flash对象通过Javascript /内嵌,它似乎一切,但IE浏览器的工作,所以我在想刚才扔IE窗外此应用程序,除非有其他较旧的浏览器使用+版本也不允许你编辑的对象。 这方面的一个例子是:

document.getElementById(divID).innerHTML = '<object ...><embed ...><\/embed><\/object>';

或jQuery的

var params = '<param name="allowFullScreen" value="true" />' +
             '<param name="allowScriptAccess" value="always" />' +
             '<param name="allowNetworking" value="all" />' +
             '<param name="movie" value="player.swf" />' +
$("#objectPlayer").html(params);

如果现代浏览器和他们的最常用的版本中的其他一切都支持这种类型的编辑,然后我就放弃IE。 之前,我得到了SWFObject的JS框架的洪水,我不打算以包括,我不相信会包含我的人口统计浏览器中一个巨大的框架。

的jsfiddle

这里有一个链接的jsfiddle我创建。 它可以在所有的浏览器IE8,但

Answer 1:

我相信<param>代码的部分是<object>

你必须通过为名称/值对embed了。

$("#objectPlayer embed").attr({
    "src": "fileName.swf",
    "name": "fileName",
    "allowFullScreen": "true",
    "width": 200,
    "height": 100,
    "type": "application/x-shockwave-flash"

    //and so on...
    });

但我会用SWFObject的,无论如何,这是行业标准,这是相当强大的,它是在网站上嵌入闪存的最佳途径。



Answer 2:

如果我理解你的问题和使用的目的,这是我的建议。

我会利用SWFObject的嵌入你的SWF到你的HTML页面。 从那里,你可以通过Flash变量(对象在那里你可以设置自定义值)到您的SWF。 这不是实现这么多的努力,它在使用清洁剂(在我看来)。 Flash变量的值可以容易地与PHP值设置或用普通值填充它们。

看看这个文章有关SWFObject的Flash变数以及如何在ActionScript 3使用它们的更多信息。



Answer 3:

到SWFObject的唯一体面的替代方案,我所知道的是jQuery的工具插件Flashembed是3.6K精缩(当与压缩担任以内):

http://jquerytools.org/demos/toolbox/flashembed/index.html

下载链接: http://jquerytools.org/download/唯一的依赖是jQuery的本身。



Answer 4:

嗯......怪,DOM将无法正常在IE8更新。 这是工作的代码。 这是丑陋的,有足够的空间进行优化:

<div id="player">
<a href="javascript: void(0)" onclick="build()">Click Me!</a><br />
    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" type="application/x-shockwave-flash" id="twitchTV" width="600" height="368" style="margin:0px;padding:0px">

    <param name="movie" value="http://www.twitch.tv/widgets/live_embed_player.swf?channel=day9tv" />
    <param name="quality" value="high" />
    <param name="bgcolor" value="#ffffff" />
    <param name="allowFullScreen" value="true" />
    <param name="allowScriptAccess" value="always" />
    <param name="allowNetworking" value="all" />
        <embed src="http://www.twitch.tv/widgets/live_embed_player.swf?channel=day9tv" quality="high" bgcolor="#ffffff" width="600" height="368"
    name="videoplayer" align="" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
    </object>     

</div>

JS:

function build(){
    // Usually the channels are vars, but this is simplified.
    var data = 'http://www.twitch.tv/widgets/live_embed_player.swf?channel=lzgamertv';   // Object Data
    var html = '<a href="javascript: void(0)" onclick="build()">Click Me!</a><br /><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" type="application/x-shockwave-flash" id="twitchTV" width="600" height="368" style="margin:0px;padding:0px"><param name="movie" value="'+data+'" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="allowNetworking" value="all" /><embed src="'+data+'" quality="high" bgcolor="#ffffff" width="600" height="368" name="videoplayer" align="" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>';


     $("#player").html("");
     $("#player").append(html);


}

的jsfiddle是这里



Answer 5:

你可以尝试这样的事情...

http://jsfiddle.net/eH8cK/

实际上,你可以重写,当你已经重写几乎大部分的内容播放器的全部内容。

请尝试,让我知道,如果它的工作原理。 谢谢



Answer 6:

我有这个与IE8很奇怪的错误在我的项目之一,这是非常难以发现-它使假如使用添加画布元素谷歌的excanvas失败innerHTML ,而不是使用document.createElement / document.appendChild

我固定它采取的所有canvas是使用创建的元素innerHTML ,并使用DOM的reacreated他们createElement方法。

我注意到,在IE8等“互动”的元素类似的问题,所以我建议你试试这个。

我没有IE8进行测试,但在这里, 尝试它的jsfiddle



文章来源: Is IE The Only Browser (or version) That Does Not Allow Flash Object Manipulation?