jQuery - iframe中的脚本标记无法更新iframe的内容

时间:2009-08-19 15:39:23

标签: jquery iframe

我有以下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 个答案:

答案 0 :(得分:1)

无法在Firefox 3,IE 7或Chrome 2上进行复制。代码工作正常(在适当的地方使用newValue),无论它是否在iframe中。

您是否测试过缩减的样本实施,而不是原始样本?因为我怀疑我们遇到了一个问题,你认为它们是等价的而不是。

当然,好消息是,如果您发布的示例实现有效,那么您所要做的就是从实际实现中添加元素,直到出现故障。

答案 1 :(得分:-1)

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");