能不能让iframe内外的页面用不同的文档模式解析

guanpuwcg3 2013-11-06 12:51:04
问题是这样的,项目添加新模块,老的代码不能动(用到了很多ie7特性的东西),而新模块写的时候也没有刻意追求向前兼容,就出来问题了。
对于老模块,解决办法如下

<meta http-equiv="X-UA-Compatible" content="IE=7"/>
</head>
<script>
alert(document.documentMode);
</script>

问题是老模块是嵌入到iframe里面展示的,而这个iframe的父框架不能加
<meta http-equiv="X-UA-Compatible" content="IE=7"/> 

这句,因为加了这句会使新模块用IE7文档模式来解析。
现在单独测试老模块会alert "7",但是嵌到iframe中,content="ie=7"就不起作用了,仍然按照父页面的也就是ie9来渲染,会报一系列错误。
求问大神有没有办法解决。
...全文
1598 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzb9077 2016-01-28
  • 打赏
  • 举报
回复
可以用一个新页面包裹旧页面 在新页面里定义渲染模式
小和尚到禅师 2014-11-29
  • 打赏
  • 举报
回复
引用 7 楼 u011335613 的回复:
这个明显是可以的,为什么说不可以。 父页面:<meta http-equiv="X-UA-Compatible" content="IE=edge"> iframe:<meta http-equiv="X-UA-Compatible" content="IE=7">
这个回答有问题 1.在父窗口文档模式小于9的情况下:iframe中的页面可以指定自己的文档模式,但是最高不超过8。 2.在文档模式为9/10的情况下:iframe中的页面自己指定文档模式无效,直接继承自父页面文档模式。 3.不指定iframe中页面的文档模式的情况下:若父页面文档模式小于9,则iframe中页面的文档模式为8;若父页面文档模式大于8,iframe中页面的文档模式继承自父页面文档模式(第2条)。 4.若父页面文档模式指定为7,iframe中页面不指定文档模式,iframe中页面的文档模式为8。
小和尚到禅师 2014-11-29
  • 打赏
  • 举报
回复
这个明显是可以的,为什么说不可以。 父页面:<meta http-equiv="X-UA-Compatible" content="IE=edge"> iframe:<meta http-equiv="X-UA-Compatible" content="IE=7">
guanpuwcg3 2013-11-06
  • 打赏
  • 举报
回复
3L的还蛮靠谱的,可惜的是答案是无解,还是必须重构老代码。 为方便后来人,刚才顺着3L给的地址,又找了个类似的: http://stackoverflow.com/questions/6740869/multiple-x-ua-compatible-meta-tag-in-a-single-site?rq=1 哎,给分,结贴。
guanpuwcg3 2013-11-06
  • 打赏
  • 举报
回复
哇,ls貌似对行业现状很了解呀
打字员 2013-11-06
  • 打赏
  • 举报
回复
你是说,运行你的程序还只能用ie7+的浏览器 估计又是政府或事业单位的什么信息管理系统
  • 打赏
  • 举报
回复
IE的bug吧,iframe使用最顶层的页面的documentMode,只能做修改了,要没改父页,要么改iframe http://stackoverflow.com/questions/16967564/apply-different-x-ua-compatible-inside-iframe 这里有提到
guanpuwcg3 2013-11-06
  • 打赏
  • 举报
回复
不是要操作父页面,是说可不可以让IE用两种不同的文档模式分别渲染(或者解析?加载?whatever)父页面和子页面,或者两个并列的子页面。
似梦飞花 2013-11-06
  • 打赏
  • 举报
回复
window.parent可以对父页面进行操作 不是很明白你的意思

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧