Совместное использование объектов JS между фреймами HTML в IE8 / IE9 - PullRequest
0 голосов
/ 26 сентября 2011

Я должен принести поддержку 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.

1 Ответ

0 голосов
/ 26 сентября 2011

Использовать стандартный глобальный объект - window. В вашем случае общий глобальный объект будет window.top (что само по себе window).

...