有没有办法使用javascript将iframe中的javascript注入其父窗口? iframe和父级都在同一个域中。
由于其他原因,我在检测到iframe中的更改后,无法简单地从父窗口执行操作。
示例:
<div id="bar"> Hello World </div>
<iframe srcdoc="
<html>
<body>
<script type="text/javascript">
// change "bar"'s style or alter its content
</script>
</body>
</html>
"></iframe>
答案 0 :(得分:2)
您需要做的就是使用iframe
中的全局parent
变量,直接使用window.parent
或parent
。
<div id="bar"> Hello World </div>
<iframe srcdoc="<html>
<body>
<script>
window.parent.document.getElementById('bar').style.background = 'red';
</script>
</body>
</html>"></iframe>
只要iframe
满足Same-Origin Policy,这就行了。
答案 1 :(得分:0)
是的,只要他们在同一个域名上。在堆栈溢出see this thread之前已经问过这个问题。
简而言之(来自链接线程)
document.getElementById('someDiv').innerHTML =
top.document.getElementById('otherIframe').contentWindow.
document.getElementById('someOtherDiv').innerHTML;