Дочернее окно доступа к массиву из родительского окна не работает в IE, но работает в Firefox, как это исправить? - PullRequest
1 голос
/ 20 мая 2011

У меня есть страница index.html , в которой есть кнопка (id="my-btn"):

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>My INDEX PAGE</title>
    </head>
    <body>
        <br><input type="button" id="my-btn" value="OPEN NEW WINDOW"/>
        <script src="js/my.js"></script>
    </body>
    </html>

Включенная страница индекса my.js , которая используется для обработки события нажатия кнопки, при нажатии кнопки открывается новое окно браузера (дочернее окно) с новой страницей ( new .html )

JS / my.js:

$('#my-btn').click(function(){  
  var childWin = window.open('new.html', '');
  childWin.parentElements=[1,2,3];
});

, как вы заметили выше, я передал массив [1,2,3] в новое открытое дочернее окно.

Новая страница ( new.html ), открытая в новом окне браузера (дочернее окно):

new.html:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>TEST</title>
</head>
<body>
    <div id="my-arr"></div>
    <script src="js/jquery-1.5.1.js"></script>
    <script src="js/new.js"></script>

</body>
</html>

На новой странице включено new.js , которое добавит текст массива, переданный из родительского окна, в качестве содержимого этой страницы в дочернем окне.

JS / new.js:

$(document).ready(function(){
    var arr= window.parentElements;

for(var i=0; i<arr.length; i++){
    var el = arr[i];
    $('#my-arr').append("<strong>"+el+"</strong>");
}

});

Все работает в Firefox (я получил массив на новой странице дочернего окна).

НО , когда я тестирую его в IE 7 , он не работает, на новой всплывающей странице IE показывает ошибку => "Длина" равна нулю или не объект , который жалуется на "elements.length" в new.js . Кажется, IE не поддерживает передачу данных таким образом childWin.parentElements=[1,2,3]

Как заставить этот код работать в IE?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...