在父窗口上下文中运行脚本

3
我想在父窗口(到iframe的)上下文中运行javascript。我可以完全控制iframe内容,但不能直接在父窗口加载脚本。
用例: 父页面包含菜单项,并根据菜单选择加载iframe内容。 我需要在iframe中加载脚本并在父窗口的上下文中执行它,以便即使我导航离开iframe,它仍然保持活动/持久。 同一域。
DOM脚本注入可行,但我想知道是否有更好的解决方案。

1
因为插图而点赞。 - Derek 朕會功夫
因此,将脚本注入到父级中。 - epascarello
脚本注入可以正常工作,但审计不喜欢它。这就是为什么我正在寻找其他选项(如果有的话)...即使是复杂的选项,也要避免脚本注入。 - Andrew P.
1个回答

1
我不确定这个解决方案在你的情况下是否有任何限制。尝试在嵌入的内容中加载JS脚本:
``` ```
并在 `iframed.js` 中添加以下代码:
// call function with context of parent window, and pass window and document as parameters. 
foo.call(window.parent, window.parent, window.parent.document);

function foo(window, document) {
    // now you can access all globals from the main window:
    var target = document.getElementsByTagName('iframe');
    // logs collection of iframes from the main window:
    console.log('iframes from main window:', target);
    // global context is main window
    console.log('global context: ', this);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接