jQuery - тег скрипта внутри iframe не может обновить содержимое iframe - PullRequest
2 голосов
/ 19 августа 2009

У меня есть следующий HTML:

<html>
    <head></head>
    <body>
        <form>
            <input id="msg" type="text" value="oldValue" />
        </form>
        <script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
        <script>
            $().ready(function() {
                var m = $("#msg");
                alert(m.val()); // returns oldValue
                m.val("newValue"); // this doesn't make the browser show newValue instead of oldValue
                alert(m.val()); // returns newValue
                // and in the end, the browser still shows oldValue for the input
            });
        </script>
    </body>
</html>

Этот код работает отлично, но при помещении в facebox (который просто создает iframe и показывает его как плавающее окно), код не может обновить содержимое ввода.

У родителя также есть jQuery, но это не должно влиять ни на что, я думаю.

Есть идеи, почему это не получается?

Ответы [ 2 ]

1 голос
/ 19 августа 2009

Невозможно выполнить репликацию в Firefox 3, IE 7 или Chrome 2. Код работает нормально (используется newValue везде, где необходимо) независимо от того, находится ли он в iframe.

Проверяли ли вы реализацию с уменьшенным образцом, в отличие от оригинала? Потому что я подозреваю, что у нас есть проблема, когда вы думаете, что они эквивалентны, а они нет.

Конечно, хорошая новость заключается в том, что если ваша опубликованная демонстрационная реализация работает, то все, что вам нужно сделать, это добавить элементы из вашей реальной реализации, пока что-то не сломается.

0 голосов
/ 19 августа 2009
doc = xframe.contentWindow.document || xframe.document || xframe.contentDocument || xframe.contentWindow && xframe.contentWindow.document || null;

if(!doc)
{
  alert("Error");
  return false;
}

var m = $(doc).find("#msg");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...