ie6下的iframe,问题多多

今天在ie6下显示velocity页面中的iframe,发现除了iframe的外框以外,src中请求的url完全没有读取成功,结果是个空的iframe。

总结网上一共有以下几种解决办法:

1,

<iframe name='ifrm_select_jhs_x' src="+url+" scrolling='no' frameborder=0 width='256' height='174'></iframe>

ifrm_select_jhs_x.location.href = url;

2,

认为src不能写在<iframe的后面

http://be-evil.org/showlog-91.html

http://social.msdn.microsoft.com/forums/zh-TW/236/thread/a01ee23e-08d6-414d-ba22-9922f456af3c/

3,

认为iframe src的URL长度过长

http://yuweijun.blogspot.com/2008/11/when-iframe-src-is-too-long-in-ie6ie7.html

http://support.microsoft.com/kb/208427/zh-cn

4,

认为iframe src的URL长度过长

http://yuweijun.blogspot.com/2008/11/when-iframe-src-is-too-long-in-ie6ie7.html

http://support.microsoft.com/kb/208427/zh-cn

5,

猜测是:html书写不规范造成。因为这个结果页面是jsp动态生成的,可能其它代码造成了影响。



最后解决方法:先生成iframe,点击“更多信息”时改变iframe的src,之前是采用每次点击删除之前的iframe,添加新的iframe对象。

6,
今天解决了此问题 以下是核心代码
...........
Container.innerHTML="<iframe id=sdfgfer567fgh name=sdfgfer567fgh src="+url+" frameborder='0' scrolling='no' width="+divwidth+" height="+divh+" marginheight='0' marginwidth='0'>";//创造iframe 并指定ID
var ieset = navigator.userAgent;
if(ieset.indexOf("MSIE 6.0") > -1)//浏览器判断 如果是IE6
setTimeout('window.parent[/'sdfgfer567fgh/'].location.reload();',0);//执行这一方法

......

7,
function logindiv()
{
if(Fid("login_div"))
{
document.body.removeChild(Fid("login_div"));
}
var obj_div=document.createElement("div");
obj_div.id="login_div";
obj_div.style.top =200
obj_div.style.left=100
obj_div.className="login_box";
obj_div.innerHTML=" <iframe style='width:400px;height:400px;border:medium none;margin:0px;padding:0px' name='Login' id='Login' marginwidth='0' marginheight='0' scrolling='no' frameborder='0' src=''> </iframe>";
document.body.appendChild(obj_div);
obj_div.getElementsByTagName("iframe")[0].src = "http://www.qq.com/";

}

8,
为了实现提示框效果,从而使用动态嵌入iframe方案,但是实施过程中IE7下正常,IE6需要刷新才可正常显示,如下:
Js代码
this.open = function(_sUrl)
{
this.show();
var openIframe = "<iframe width='100%' height='100%' name='iframe_parent' id='iframe_parent' src='" + _sUrl + "' frameborder='0' scrolling='no'></iframe>";
myInnerHTML('dialogBody', openIframe);
}
该方法主要将URL通过iframe形式嵌入到document中,但IE7可正常显示,IE显示空白,而且'iframe_parent' 的src属性为“”,经过漫长的调试,最终通过增加一刷新iframe语句才得以解决:document.frames('iframe_parent').location.reload();
对于此类BUG的定位实在困难。

 

另:

解决方案总结:

1. 不使用 a 标签来触发onclick事件
2. a 标签的 href ="###" 而不使用 href="javascript://" 和 href="javascript:void(0)"
3. 在 click 事件的处理函数中添加 return 语句: οnclick="work(); return false;" 【强烈推荐】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值