jquery.append () Iframe IE проблема - PullRequest
1 голос
/ 29 июля 2010

Возможно, это ошибка, но я не могу получить доступ к внешнему документу из iframe с помощью jquery (IE7).

вот очень простой пример:

верхний документ:

<html>
<head>
</head>
<body>
<iframe src="test2.html" id="UserIFrame" name="UserIFrame">
</body>
</html>

и дочерний фрейм:

<html>
<head>
<script type="text/javascript" src="styles/genevadesign_jquery-1.4.1.js"></script>
<script type="text/javascript">
       function doit(){
          $('body',top.document).append($('#test'));
          $('#test',top.document).fadeIn(300);
      }
</script>
</head>
<body>
<div id="test">test</div>
<input type="button" onclick="doit();"/>
</body>
</html>

Как видите, я пытаюсь получить доступ к верхнему документу из внутренней рамки следующим образом:

$ ('body', top.document) .append ($ ('# test'));

Но это не работает в IE7 "Недопустимый аргумент". Он работает в том же документе, но как только я ссылаюсь на другой документ, он перестает работать.

PS. Браузер Gecko может справиться с этим. Просто IE7 пока не умеет это делать.

Ответы [ 2 ]

4 голосов
/ 10 ноября 2011

Проблема возникает только в IE и связана с невозможностью создавать узлы и перемещать узлы между окнами (что на удивление является хорошим подходом).

Рассмотрим следующий пример:

$("<iframe/>").append("<div/>");

В IE7 это приведет к ошибке - так как элемент должен был быть создан с использованием iframe.ownerWindow.document, а не методом document.createElement или window.ownerDocument.createElement. И это происходит во всех методах манипулирования DOM. IE7 также не поддерживает importNode / adoptNode методы.

Так что остается создание объектов через JS и манипулирование, ууу!

0 голосов
/ 29 июля 2010

пытается с " window.parent "

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