Javascript 使用jquery从iframe更新父级

Javascript 使用jquery从iframe更新父级,javascript,jquery,html,iframe,Javascript,Jquery,Html,Iframe,我有这个最小的测试用例 a、 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>

我有这个最小的测试用例

a、 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>

函数更新\u父级(值){
window.parent.document.getElementById('myinput')。value=value;
}

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

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

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

$(window.self.top.document).find('#myinput');
这将为您提供父元素中的元素

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

$()包装的第二个参数是要搜索的上下文。这默认为document,因此传递父对象会将父对象设置为搜索上下文。

对我来说效果很好:jQuery并不能完全替代javascript。你不需要为此更换所有的东西。