Javascript 如何从通过external.js脚本标记创建的iframe中授予函数或文档元素的权限?

Javascript 如何从通过external.js脚本标记创建的iframe中授予函数或文档元素的权限?,javascript,security,iframe,permissions,Javascript,Security,Iframe,Permissions,我通过将脚本嵌入到不属于我的域中。脚本输出一个iframe,其src设置为我的站点上的脚本。我还输出了一个包含iframe的div标记(它不是由iframe呈现的,而是由js文件呈现的)。现在,我希望能够执行一个通过iframe加载的函数,以控制iframe的父div,或者输出该函数以及div标记,并从iframe执行该函数。在尝试执行这两种操作时,我遇到了权限被拒绝的错误。如何授予权限?(然后时间流逝,请参见重复的问题)。简而言之,您不能使用您发布的方式。windows(包括iframe窗口)

我通过
将脚本嵌入到不属于我的域中。脚本输出一个iframe,其src设置为我的站点上的脚本。我还输出了一个包含iframe的div标记(它不是由iframe呈现的,而是由js文件呈现的)。现在,我希望能够执行一个通过iframe加载的函数,以控制iframe的父div,或者输出该函数以及div标记,并从iframe执行该函数。在尝试执行这两种操作时,我遇到了权限被拒绝的错误。如何授予权限?

(然后时间流逝,请参见重复的问题)。

简而言之,您不能使用您发布的方式。windows(包括iframe窗口)可以对彼此做的唯一事情就是更改URL/哈希。您可以做的是:

1) 创建一个HTML页面,检查其哈希值以查找要运行的命令。把这个放在网站上

2) 在常规站点上,在iframe中加载页面站点B

3) SITEB iframes无法访问其父级,因为它位于单独的域中。但是,它可以通过iframe加载您在步骤1中设置的页面。您还可以在此iframe上更改URL。此SITEA iframe允许与父站点对话和控制SITEA(通过类似
window.top的方式)


这听起来可能令人困惑,但它确实有效,而且几乎是跨浏览器和在IE6中实现这一点的唯一方法。我做过这样的事情来支持在母网站上扩展的广告

即使域所有者正在嵌入从我的域加载的我的js文件?是的,即使域所有者正在嵌入来自其他域的js。答案(“你不能”)的关键部分在答案中。这个链接只是解释了原因。对不起,你能再解释一点或者提供一段代码吗?听起来很有希望…谢谢!嗨,Alex,我找到了几年前我学到的这个东西的原始链接:看起来它已经用更现代的方式更新了。不确定像postMessage和其他js插件这样的“现代方式”是否支持较旧的浏览器,但值得一试