经过漫长的一天在网上搜索后,我找不到解决问题的方法。
我在使用swfObject在我的webPage中加载swf文件时遇到问题,在IE11中无效(在ie8-10,firefox和chrome中工作正常)
这是我的背景: 这是通过swfObject发送给IE的params的初始化 `
// For version detection
var swfVersionStr = "10.0.0";
// To use express install, set to playerProductInstall.swf
var xiSwfUrlStr = "commun/swf/playerProductInstall.swf";
//FlashVars : contains an url used for an http request that returns the crossdomain.xml file with the crossDomainPolicy...
var flashvars = {
crossdomainURL : httpOrigin + "the.url.to.crossdomain.policy.file"
};
var params = {};
params.quality = "high";
params.bgcolor = "white";
params.allowscriptaccess = "sameDomain";
params.allowfullscreen = "true";
var attributes = {};
attributes.id = "dematMultiuploader";
attributes.name = "dematMultiuploader";
attributes.align = "middle";
swfobject.embedSWF(
"the/url/to/SWFfile.swf", "falshContentID",
"550", "280",
swfVersionStr, xiSwfUrlStr,
flashvars, params, attributes);
` 这是我的对象标签
<noscript>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="550" height="280" id="dematMultiuploader">
<param name="movie" value="path/to/swf/file.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="white" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="true" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="gedemat/gecco/piece/pieceDocument.create.swf"
width="350" height="130" id="dematMultiuploader">
<param name="quality" value="high" />
<param name="bgcolor" value="white" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="true" />
<!--<![endif]-->
<!--[if gte IE 6]>-->
<p>Either scripts and active content are not permitted to run or
Adobe Flash Player version 10.0.0 or greater is not installed.</p>
<!--<![endif]-->
<a href="http://www.adobe.com/go/getflashplayer"> <img
src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif"
alt="Get Adobe Flash Player" />
</a>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</noscript>
正如您所看到的,IE的Object标签中没有flashVars参数,这可能是问题吗?
可能是IE改了一些IE11的参数名称,比如crossDomainUrl?
我已经尝试将flashvars param放在带有crossDomain url的object标签中但是它不起作用。
在firefox和chrome中我收到此错误:
NetworkError:找不到404 - http://localhost:8080/crossdomain.xml
因此,他们尝试直接在服务器的根目录下加载文件,但没有任何成功,但仍然有效,因为在调用之前已经加载了crossdomain.xml 。也许IE在那个特定的时刻找不到这个文件?不考虑之前加载的那些?
任何想法?
答案 0 :(得分:1)
找到解决方案! 在Internet Explorer 11的官方文档中,我发现了这个:
在Windows 7 SP1或带有SP1的Windows Server 2008 R2上运行的Internet Explorer 11上不支持预安装的Adobe Flash版本。但是,您仍然可以下载并安装单独的Adobe Flash插件。
这是指向它的链接:http://technet.microsoft.com/en-us/library/dn268945.aspx
由于我在Windows 7 SP1上运行,我重新安装,一切都恢复正常。
答案 1 :(得分:0)
删除<noscript>
应该会有所帮助。
答案 2 :(得分:-1)
在html部分中找不到falshContentID。删除整个对象标记并添加 html区域中的以下代码。
strerror_s