我必须将对IE8 / IE9的支持带到专为IE6构建的应用程序中,并且大量使用HTML框架(框架集)。应用程序有很多JavaScript代码,其中使用了“navigator.PropertyABC”。这里“PropertyABC”是在一个帧中初始化的对象,并在许多其他帧中使用。这在IE6中有效,因为“navigator”对象似乎在所有帧之间的IE6中共享。它也适用于IE7兼容模式。但它在IE8 / IE9中不起作用。 有嵌套到其他帧中的帧,因此它是多级的。 示例代码:
<html>
<frameset rows="50%,50%">
<frame name="a" src="frame1.html">
<frame name="b" src="frame2.html">
</frameset>
</html>
frame1.html:
<html>
<body>
<script type="text/javascript">
navigator.testingSharedVariable ="1st frame!";
</script>
</body>
</html>
frame2.html:
<html>
<body>
<input type="button" onclick="alert(navigator.testingSharedVariable)">
</body>
</html>
点击IE6中的按钮时 - 警告“第1帧!”被提出来了。在IE8 / IE9上 - “未定义”。
还有什么我可以用来在帧之间共享对象而不是“导航器”吗? 不需要其他浏览器支持,只需IE8 / IE9。