Я должен принести поддержку IE8 / IE9 в приложение, которое было разработано специально для IE6 и в котором часто используются HTML-фреймы (framesets). Приложение имеет много кода JavaScript, где используется "navigator.PropertyABC". Здесь «PropertyABC» - это объект, инициализированный в одном из кадров и используемый во многих других кадрах. Это работало в IE6, потому что объект "навигатор", кажется, разделен в 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.