3

我有这个最小的测试用例

一个.html

<!DOCTYPE html>
<html>
<body>
    <input type="text" id="myinput">
     <iframe id="frame" src="b.html" style="width:100%;height:100%" frameBorder="0"></iframe>
     </body>
</html>

b.html

<!DOCTYPE html>
<html>

<body>
    <script>
        function update_parent(value) {
            window.parent.document.getElementById('myinput').value=value;
        }
    </script>
    <a class="tag" name="something" href="javascript:void(0)" onclick="update_parent(something)"/>Bla Bla</a>
    </body>

</html>

此处的目的是在 iframe 上单击按钮时更新父窗口中的输入框。正如您在上面看到的,我尝试使用纯 javascript 来完成它,但它也不起作用。如果可能的话,我想使用 jquery 来做到这一点。

4

2 回答 2

11
function update_parent(value) {
    $('#myinput', window.parent.document).val(value);
}

$() 包装器的第二个参数是搜索的上下文。这默认为文档,因此传递父级将父级设置为搜索上下文。

于 2013-09-13T21:27:12.493 回答
0

您的父元素将是 window.self.top 您可以访问父元素的内容或文档。

话虽如此,您的代码应如下所示:

$(window.self.top.document).find('#myinput');

这将为您提供父母中的元素。

于 2013-09-13T21:26:38.220 回答