Вопрос

Я работал над всплывающим окном, которое взаимодействует с window.opener.Я обнаружил конкретную проблему: IE не работает при попытке добавить объект.Я установил демо-страница здесь.

По сути, демо-версия открывает всплывающее окно с кнопкой.Он предназначен для выделения частей страницы, как я описал в своей статье. предыдущий вопрос.

В демо-версии нажатие кнопки всплывающего окна добавляет два элемента div к window.opener.Один div добавляется как строка, а второй добавляется как объект.Я получаю сообщение об ошибке в IE при попытке добавить объект.Вот яваскрипт:

$(':button').click(function(){
 $('#clicked').empty().show().html('Click detected!').fadeOut();
 var str = '<div class="highlight" style="position:absolute;height:50px;width:50px;left:150px;top:100px;background:#fc0;zIndex:99;">str</div>';
 var obj = $('<div/>', {
  'class': 'highlight',
  css: {
   position:   'absolute',
   height:     '50px',
   width:      '50px',
   left:       '100px',
   top:        '100px',
   background: '#08f',
   zIndex:     99
  }
 }).html('obj');
 try { $(window.opener.document.body).append(obj); } catch(err) { alert(err.description) };
 $(window.opener.document.body).append(str);
})

Итак, я прошу помощи в отслеживании проблемы с jQuery.

Это было полезно?

Решение

Я не думаю, что IE позволит вам добавить элемент, созданный в одном окне, в DOM другого окна.Он действительно требователен к этому.Точно так же иногда это пугает, если вы передаете созданные объекты Javascript из одного окна в другое, особенно если окно создания позже закрывается.

Попробуйте использовать window.opener.$("<div/>") для создания своего элемента.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top