2012-10-23 52 views
0

我有以下javascript代码(在底部),我注入每个api调用客户端从他们发布的网站。他们的网页中为swf注入javascript在IE中不显示,但在Chrome/FF中显示

客户端使脚本代码调用,如:

<div id="myDivID"/> 
<script type="text/javascript" src="http//:srv.ab.com/api/getswf?divIdToReplace=myDivID"></script> 

一旦执行下面的代码是从API调用注入和替换的SWF股利:

<script type="text/javascript"> 

     (function() { 

      var object = document.createElement('object'); 
      object.setAttribute('width', '300'); 
      object.setAttribute('height', '250'); 
      object.setAttribute('classid', 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000'); 

      var param1 = document.createElement('param'); 
      param1.setAttribute('name', 'movie'); 
      param1.setAttribute('value', 'http://srv.ab.com/test.swf'); 

      var embed = document.createElement('embed'); 
      embed.setAttribute('src', 'http://srv.ab.com/test.swf'); 
      embed.setAttribute('width', '300'); 
      embed.setAttribute('height', '250'); 

      var param2 = document.createElement('param'); 
      param2.setAttribute('name', 'wmode'); 
      param2.setAttribute('value', 'transparent'); 

      object.appendChild(param1); 
      object.appendChild(embed); // <-- Invalid argument for IE9!!! 
      object.appendChild(param2); 

      var container = document.getElementById('myDivID'); 
      while (container.firstChild) { container.removeChild(container.firstChild); } 
      container.appendChild(object); 
     })(); 

</script> 

但是,swf不显示在IE9中,但在Chrome和FF中呈现良好。

有一点需要注意的是,IE9中的无效参数错误仅在控制台中出现,我在脚本中调用了该错误。

缺少什么我在这里?我不能使用jquery/swfobject,因为它必须是纯JavaScript,我注入客户端页面。

+0

控制台中的任何错误? – epascarello

+0

也是你上面的代码,脚本标签缺少a>。这是一个错字还是实际的错误? – epascarello

+0

@epascarello:对不起,这是一个错字。来源已更新。 – JaJ

回答

0

原因IE设置某些内联网/互联网网站为怪癖模式。这导致IE9使用IE6 JavaScript行为和IE7 DOM操作。

添加标头中的以下元数据缓解这一:

<head> 
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
</head> 

然而,从API递送溶液中的X-UA-Compatible标头可与IE =边缘的值的响应来设定。

相关问题