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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在父窗口的上下文中运行脚本相关的知识,希望对你有一定的参考价值。

我想在父(到iframe)窗口的上下文中运行javascript。我对iframe内容有完全控制权,但不能直接在父窗口中加载脚本。

用例:父页面包含菜单项,并根据菜单选择加载iframe内容。我需要在iframe中加载一个脚本并在父窗口的上下文中执行它,这样即使我导航了iframe,它也会保持活着/持久性。相同的域名。

DOM脚本注入工作,但我想知道是否有更好的解决方案。

答案

不确定此解决方案是否面临您的案例中的任何限制。尝试在iframed内容中加载JS脚本:

<script src="iframed.js"></script>

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

以上是关于在父窗口的上下文中运行脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何在父窗口中运行子窗口

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

使用任务计划程序运行脚本,用户上下文完全静默,没有弹出窗口或 cmd flash

使用 JavaScript 在父窗口中打开 iFrame 表单成功

仅在父片段中的操作栏中显示搜索视图

共享元素转换在父片段和子片段之间不起作用(嵌套片段)