日期:2014-05-16  浏览次数:20690 次

怎么让iframe的src页与父页面使用不同的文档类型?
公司一款产品改版升级,新做的主框架支持<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">,由于时间和精力的原因,仍然要在右侧一个iframe里边打开一些旧的模块页面,旧模块不支持<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">,这样运行起来时旧模块页面上一些不规范的JS就会不断的弹出错误提示,一些不规范的CSS也会造成页面错位。
 
现在我们想让iframe里边的旧模块页面暂时继续按原来的文档类型运行,不受外部父页面框架的文档类型影响,能实现吗?有什么办法?谢谢。

【前面一帖被404了,只好重发】

------解决方案--------------------
可以看到
------解决方案--------------------
iframe中页面单独设置DTD也会受影响吗? 应该不会
------解决方案--------------------
iframe是独立的页面,和父页的文档说明互不相干
------解决方案--------------------
iframe加载的页面不会使用父页的dtd的,应该你其他地方有问题。测下就就知道了,1.html使用的是BackCompat,父页是CSS1Compat

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script>
alert(document.compatMode)
</script>
<iframe src="1.html"></iframe>


1.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><script>
alert(document.compatMode)
</script>