swfobject 2不会仅使用Internet Explorer加载SWF

时间:2013-08-11 21:12:35

标签: javascript internet-explorer flash swfobject

我有一个太常见的问题,一个javascript代码段工作在除IE之外的每个浏览器上(使用Windows 7附带的版本,Flash显式安装和今天双重检查)。 为了避免这种问题,我已经选择使用最新的SWFObject.js,但显然这还不够。请随时通过以下方式自行检查:

A wiki I am installing

请注意,您将看到脚本data-cfasync语句以阻止Cloudflare的JS优化。它们不影响结果(我使用和不使用它们进行测试并禁用CF的RocketLoader)。

以下是我的一些尝试:

第一个示例适用于除IE以外的所有浏览器:

<script data-cfasync="false" type="text/javascript" src="/wiki/extensions/fwbanner/js/swfobject.js"></script>
<script data-cfasync="false" type="text/javascript">
  var flashvars = {};
  var params = {};
  var attributes = {};
  attributes.id = "fwbanner-id";
  attributes.class = "fwbanner-class";
  swfobject.embedSWF("http://www.fleurworld.com/static/media/images/banners/fw_wk_banner_en.swf", "fwbanner-div", "850", "85", "9.0.0", "/wiki/extensions/fwbanner/js/expressInstall.swf", flashvars, params, attributes);
</script>

第二个例子使用我在Stack Overflow上读到的建议,即获取元素ID而不是显式指示它。它仍适用于除IE之外的所有浏览器。

<script data-cfasync="false" type="text/javascript" src="/wiki/extensions/fwbanner/js/swfobject.js"></script>
<script data-cfasync="false" type="text/javascript">
  var flashvars = {};
  var params = {};
  var attributes = {};
  attributes.id = document.getElementById("fwbanner-id");
  attributes.class = "fwbanner-class";
  swfobject.embedSWF("http://www.fleurworld.com/static/media/images/banners/fw_wk_banner_en.swf", "fwbanner-div", "850", "85", "9.0.0", "/wiki/extensions/fwbanner/js/expressInstall.swf", flashvars, params, attributes);
</script>

这第三个片段根本不起作用(在任何浏览器中):IE中的document.getElementById(“fwbanner-id”)返回null但是on on(()仍然无法修复它。我想看看是否延迟元素ID检索直到DOM被加载会有所帮助。它看起来没有。

<script data-cfasync="false" type="text/javascript" src="/wiki/extensions/fwbanner/js/swfobject.js"></script>
<script data-cfasync="false" type="text/javascript">
window.onload = function ShowBanner() {
  var flashvars = {};
  var params = {};
  var attributes = {};
  attributes.id = document.getElementById("fwbanner-id");
  attributes.class = "fwbanner-class";
  swfobject.embedSWF("http://www.fleurworld.com/static/media/images/banners/fw_wk_banner_en.swf", "fwbanner-div", "850", "85", "9.0.0", "/wiki/extensions/fwbanner/js/expressInstall.swf", flashvars, params, attributes);
}
</script>

非常感谢任何帮助或指示!

0 个答案:

没有答案