admin管理员组文章数量:1565292
前言:今天看到网站在IE上不停的转圈圈(页面基本显示出来了),当时所有的JS都失效了,本着本职工作责任心,开始了找bug之路,但是过程比想象中要艰辛,一开始以为是base标签有问题导致JS加载不到,后来认为是js冲突导致所有js运行失败(又替换了顺序,又替换了好多个JS版本),最后一行一行的删代码,测试,删代码,测试。发现是embed播放器的问题,好在最后解决了问题,上代码!
提出问题
1,页面的数据为js异步加载,所以我把页面上的embed标签src设置为空,加载到数据以后直接set进去。(火狐,chrome,手机都没问题,奇葩的IE!)
html代码:
<embed src="" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="opaque" style="width:100%;height:100%;"></embed>
jquery代码:
$(function(){
$("embed").attr("src","http://www.tudou/l/Q0MiBE2DPCs/&bid=05&iid=132813935&resourceId=0_05_05_99/v.swf");
});
2,当src=""时,IE获取到了一个网站前缀(设想一下:src=“video/video.swf”,IE会拿到www.baidu/video/video.swf),src为空这个时候IE就拿到了"www.baidu",并以这个为视频请求不断发送请求,这也就造成了标签卡一直转圈圈处于加载中。
3,因为我用的是jquery初始化,很多人都知道,jquery的DOM初始化,需要把DOM初始一遍以后才开始执行。而IE中embed的src="",一直加载不出来所以导致页面上所有的初始化都初始不了。
代码:
$(function(){
//do some thing
});
解决方案:
1,删除页面上的embed标签。
2,JQ添加embed标签,例如:
$("body").append('<embed src="http://www.tudou/l/Q0MiBE2DPCs/&bid=05&iid=132813935&resourceId=0_05_05_99/v.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="opaque" style="width:100%;height:100%;"></embed>');
3,js添加:
document.getElementById("driveLetter").innerHTML('<embed src="http://www.tudou/l/Q0MiBE2DPCs/&bid=05&iid=132813935&resourceId=0_05_05_99/v.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="opaque" style="width:100%;height:100%;"></embed>');
花了我一天的时间因为找bug找错方向,认为是JS冲突(实际上控制台没报错),记录下希望帮到遇到问题的他人,至少你可以不用像我花一天时间了。
版权声明:本文标题:IE 浏览器embed标签src属性为空,不能打开网页 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1727375568a1111667.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论