Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为swf注入javascript不会在IE中显示,但会在Chrome/FF中显示_Javascript_Flash - Fatal编程技术网

为swf注入javascript不会在IE中显示,但会在Chrome/FF中显示

为swf注入javascript不会在IE中显示,但会在Chrome/FF中显示,javascript,flash,Javascript,Flash,我有下面的javascript代码(在底部),我为客户端发布的网站的每个api调用注入这些代码 网页中的客户端进行脚本标记调用,例如: <div id="myDivID"/> <script type="text/javascript" src="http//:srv.ab.com/api/getswf?divIdToReplace=myDivID"></script> 执行后,将从api调用注入以下代码,并用swf替换div: <script t

我有下面的javascript代码(在底部),我为客户端发布的网站的每个api调用注入这些代码

网页中的客户端进行脚本标记调用,例如:

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

执行后,将从api调用注入以下代码,并用swf替换div:

<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>

(功能(){
var object=document.createElement('object');
setAttribute('width','300');
setAttribute('height','250');
setAttribute('classid','clsid:d27cdb6e-ae6d-11cf-96b8-444553540000');
var param1=document.createElement('param');
param1.setAttribute('name','movie');
param1.setAttribute('值','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);

appendChild(embed);//表明IE将某些intranet/internet站点设置为Quirks模式。这导致IE9使用IE6 javascript行为和IE7 DOM操作

在标头中添加以下元数据可以缓解此问题:

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


但是,从api交付解决方案中,可以在响应中设置X-UA兼容标头,其值为IE=edge。

此外,您在上面编写的代码中,脚本标记缺少一个>。这是打字错误还是实际错误?@epascarello:抱歉,这是一个打字错误。Source已更新。@epascarello:另外,已更新Source,以说明调用行abov上的“无效参数”不确定DOM是否是以IE9限制的回归格式填充的,或者是什么?