IE是唯一不允许Flash对象操作的浏览器(或版本)吗?

我已经尝试了多种方法通过Javascript编辑Flash对象/嵌入,它似乎可以在除了IE之外的所有内容中工作,所以我正在考虑将IE推出这个应用程序的窗口,除非有其他浏览器的旧版+使用版本也不允许你编辑对象。 一个例子是:

document.getElementById(divID).innerHTML = ''; 

或者在jquery

 var params = '' + '' + '' + '' + $("#objectPlayer").html(params); 

如果所有其他现代浏览器及其最常用的版本都支持这种编辑,那么我将废弃IE。 在我遇到SWFObject JS框架之前,我不打算为浏览器添加一个巨大的框架,我认为它不会包含我的人口统计数据。

的jsfiddle

这是我创建的JSFiddle的链接。 它适用于所有浏览器,但IE8

我相信你的代码的部分是针对

您还必须传递embed的名称/值对。

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

但无论如何我会使用SWFObject,它是行业标准,它非常强大,它是在网站上嵌入flash的最佳方式。

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

我会利用SWFObject将您的SWF嵌入到HTML页面中。 从那里,您可以将flashVars(可以在其上设置自定义值的对象)传递给SWF。 实现这个并没有太大的努力,它的使用更清洁(在我看来)。 可以使用PHP值轻松设置flashVars的值,也可以使用普通值填充它们。

有关SWFObject和FlashVars以及如何在ActionScript 3中使用它们的更多信息,请查看本文。

我所知道的SWFObject唯一合适的替代方案是jQuery Tools Flashembed插件,它缩小了3.6k(并且在压缩时更少):

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

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

嗯……奇怪的是,DOM在IE8中无法正常更新。 这是工作代码。 这很丑陋,还有很多优化空间:

  

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 = 'Click Me!
'; $("#player").html(""); $("#player").append(html); }

JSFiddle就在这里

你可以试试这样的……

http://jsfiddle.net/eH8cK/

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

请尝试让我知道它是否有效。 谢谢

我在我的一个项目中遇到了这个非常奇怪的错误,这很难被捕获 – 如果使用innerHTML而不是使用document.createElement / document.appendChild添加了canvas元素,那么Google的excanvas就会失败。

我通过获取使用innerHTML创建的所有canvas元素来修复它,并使用DOM的createElement方法重新处理它们。

我已经注意到IE8中其他“交互”元素的类似问题,所以我建议你试试这个。

我没有IE8来测试它,但是在这里, 在jsfiddle上试试吧