سؤال

لقد كنت أعمل على نافذة منبثقة تتفاعل مع window.opener. لقد وجدت مشكلة محددة مع IE لا تعمل عند محاولة إلحاق كائن. لقد قمت بإعداد ملف الصفحة التجريبية هنا.

في الأساس ما يفعله العرض التوضيحي هو فتح نافذة منبثقة مع زر. يهدف إلى تسليط الضوء على أجزاء الصفحة كما وصفت في بلدي السؤال السابق.

في العرض التوضيحي ، يؤدي النقر فوق زر نافذة المنبثقة إلى إلحاق اثنين من divs إلى 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 سوف يتيح لك إلحاق عنصر تم إنشاؤه في نافذة واحدة في نافذة أخرى. إنه أمر صعب الإرضاء حقًا. وبالمثل ، فإنه يصبح في بعض الأحيان في بعض الأحيان إذا قمت بتمرير كائنات JavaScript التي تم إنشاؤها من نافذة إلى أخرى ، خاصة إذا كانت نافذة إنشاء لاحقًا تختفي.

جرب استخدام window.opener.$("<div/>") لإنشاء عنصرك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top