前端-解决IE浏览器下iframe中出现多余的滚动条问题

前端-解决IE浏览器下iframe中出现多余的滚动条问题,第1张

       如上图红色区域所示可以看到,在IE浏览器下会出现这样的多余滚动条。由于这个页面是用iframe标签嵌入的,所以直接用IE的调试工具是无法解析内部的结构的。

处理方案:

方案一:给iframe标签增加css属性,display: block

方案二:在chrome浏览器下打开iframe内部的页面,通过查看调试者工具可以看到iframe内部的结构

从图中可以看到html的位置有添加一个overflow:scroll的属性,这个属性会自动为页面添加一个滚动条。因此,去掉该属性之后,问题就得到解决了。

项目中有需求,在我们的系统页面中,使用 iframe 标签嵌入第三方系统页面,一开始能够正常运行,但是第三方系统升级后,在IE浏览器下,只要打开我们的系统页面,就会自动跳转到第三方系统页面中。

仔细研究第三方页面后,发现他们页面中有如下脚本:

这段脚本运行后,会自动判断当前的 location 是否是顶层的,即是否被嵌套到 iframe 里面了,如果是,则强制跳转。

在 chrome 中,这段脚本不会生效,但是在 IE 下可以。

解决的办法就是,使用 iframe 标签的 h5 新属性 sandbox 来控制。

在我们页面的 iframe 中修改如下:

这样在 IE 下访问时,页面不会再自动跳转了!

管理员回复:在ie下面,iframe背景默认为白色,如果要改变,最好的方法是在iframe的body中添加<body style="backgroud-color:transparent">如果不能改动iframe的源码,但是iframe和主页面在同一主域下,可以在iframe的onload事件中去改变被引用的iframe的背景色。function bgtransparent(){if (document.all){ var frm = document.getElementById("loginstatus")var node = frm.Document.createElement('style')var cssText = 'body{background-color:transparent}'node.setAttribute('type', 'text/css')frm.Document.getElementsByTagName('head')[0].appendChild(node)if (node.styleSheet) node.styleSheet.cssText = cssTextelse if (frm.Document.createTextNode) node.appendChild(frm.Document.createTextNode(cssText))if (frm.allowTransparency) frm.allowTransparency = true}}<iframe src="a.html" onload="bgtransparent()"></iframe>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11320445.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存