我想在父(到iframe)窗口的上下文中运行javascript。我对iframe内容有完全控制权,但不能直接在父窗口中加载脚本。
用例:父页面包含菜单项,并根据菜单选择加载iframe内容。我需要在iframe中加载一个脚本并在父窗口的上下文中执行它,这样即使我导航了iframe,它也会保持活着/持久性。相同的域名。
DOM脚本注入有效,但我想知道是否有更好的解决方案。
答案 0 :(得分:1)
不确定此解决方案是否面临您的案例中的任何限制。尝试在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);
}