2011-04-05 3 views
4

IE9 (режим стандартов) не позволяет вам вообще манипулировать iframe в DOM. Если вы используете jQueryUI Dialog или функцию .wrap() jQuery, чтобы обернуть контент, в котором есть iframe, в нем будет взрываться IE9. На самом деле вам даже не нужен jQuery, простой старый JS будет работать отлично (см. Ниже).Режим стандартов ie9, iframes и dom manip

Я хотел бы знать, что люди думают об этом с Microsoft says they do this on purpose to address a memory leak.

Мы не знаем, что с этим делать. Помещение всех наших документов, которые используют iframes в режим Quirks, кажется неправильным. Но мы не знаем, каковы альтернативы. Есть идеи? ТИА.

Javascript Пример кода:

 <p id="after"></p> 

..put IFrame здесь ...

 <script type="text/javascript"> 
      //uncomment code below in IE9 standards mode to see error 
      //document.getElementById("after").appendChild(document.getElementById("iframe")); 
     </script> 
+0

где элемент с id 'iframe'? –

+0

Документ MSDN, который вы указали, касается IFRAMES, которые фактически не находятся в дереве документов. Но в вашем вопросе не упоминается, что вы пытаетесь сделать это на IFRAME, который не находится в дереве. Это то, что вы пытаетесь сделать? Что значит «взорвать»? Что такое сообщение об ошибке? – EricLaw

+1

Извините, я добавил разметку, которая была повреждена, когда я опубликовал ... Если вы вообще манипулируете iframe в DOM, IE9 взорвется. Оберните его с помощью divs или переместите его и BOOOM! Сообщение (и) ошибки fyi, что родные объекты JS как «Объект» не существуют. – tengoal

ответ

3

После запуска в этом вопросе я поддался поставить браузер в режиме совместимости:

 Response.AddHeader("X-UA-Compatible", "IE=8"); 

Любые другие решения, безусловно, приветствуются, поскольку, как и tengoal, я подозреваю, что это не лучший вариант. n хотя это работает.

+0

Что мы тоже сделали. – tengoal