gpt4 book ai didi

javascript - 如果我的 JavaScript 代码在 <iframe> 中,我是否需要命名空间?

转载 作者:搜寻专家 更新时间:2023-11-01 04:59:04 24 4
gpt4 key购买 nike

如果我编写一些在 <iframe> 中运行的 JavaScript(它是使用 JavaScript 动态创建并添加到 DOM 中的,如果这很重要),它是否与其父页面的全局命名空间隔离,或者是否仍然可能发生冲突?

我进行了一些谷歌搜索并找到了这个页面,但我无法真正理解他在这里所做的事情,或者它是否适用于我正在尝试确定/完成的事情。

http://dean.edwards.name/weblog/2006/11/sandbox/

我正在创建一个将存在于未知主机页面上的小部件;它是一个在页面上插入一个 <iframe> 的 <script>,然后创建一个文档来加载一些外部脚本并将该文档插入到动态创建的 <iframe> 中。

基本上,我只是想避免与主页上的任何全局变量发生冲突;我不希望我在 <iframe> 中编写或加载的任何 JavaScript 与主机页面上的任何内容发生冲突。

如果使用 <iframe> 不能自动保护我,谁能推荐一种方法来隔离 <iframe> 中运行的任何 <script> ?

提前感谢您的指导。

最佳答案

因为各自的命名空间是分开的,所以应该没问题。考虑以下内容

主页 JavaScript:

Foo = {};
Foo.bar = function(){ alert('hi!');}

现在是 iframe JavaScript:

Foo = {};
Foo.bar = function(){ alert('yo!');}

要让 iframe 与父级对话,它必须做这样的事情

window.parent.Foo.bar(); //Alerts 'hi!'
Foo.bar(); //Alerts 'yo!'

要让主机页面看到框架,它必须这样做:

window.frames['nameOfFrame'].contentWindow.Foo.bar(); //Alerts 'yo!'
Foo.bar(); //Alerts 'hi!'

关于javascript - 如果我的 JavaScript 代码在 &lt;iframe&gt; 中,我是否需要命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1653231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com