Jquery 错误:访问属性的权限被拒绝';文件';在iFrame中

Jquery 错误:访问属性的权限被拒绝';文件';在iFrame中,jquery,iframe,cross-domain,jquery-dirtyforms,Jquery,Iframe,Cross Domain,Jquery Dirtyforms,我有一个父html页面,它使用jquery将具有源的动态iframe附加到另一个域。我已经将X-Frame-Options设置为允许这样做,加载普通内容不是问题。事实上,我所有的其他脚本似乎都运行良好 加载到iFrame中的html页面使用,其中有几行看起来像$(document)。脏表单代码和jQuery脚本都是iframe文档的本地脚本 当执行这些行中的任何一行时,我在Firefox中收到以下错误(我没有测试任何其他浏览器),错误:访问属性“document”的权限被拒绝 我一直在阅读这篇文

我有一个父html页面,它使用jquery将具有源的动态iframe附加到另一个域。我已经将X-Frame-Options设置为允许这样做,加载普通内容不是问题。事实上,我所有的其他脚本似乎都运行良好

加载到iFrame中的html页面使用,其中有几行看起来像$(document)。脏表单代码和jQuery脚本都是iframe文档的本地脚本

当执行这些行中的任何一行时,我在Firefox中收到以下错误(我没有测试任何其他浏览器),错误:访问属性“document”的权限被拒绝

我一直在阅读这篇文章,如果父页面试图访问孩子的脚本,或者visa试图访问孩子的脚本,这似乎是一个问题,但在我的情况下,出错的脚本是孩子的本地脚本

顺便说一句,当没有在iFrame中加载子代码时,它可以完美地工作

我现在找不到合适的工作

我假设$(document)以某种方式被评估为父级

有什么方法可以纠正这种行为吗?也许通过修改插件代码。也许,$(document.find('contentWindow')


我感谢你的帮助!谢谢。

您无法访问它。现在问题是为什么

为此,只需通过下面的链接

在你的情况下,如果你想在页面加载上做任何事情,那么最好使用下面的IFrame代码

 <iframe ........ onload='yourFunction( this )'>

在Dirty Forms 1.x中,默认行为将事件处理程序附加到当前页面所在的任何父页面中的锚定标记。执行此操作的代码如下所示:

$(top.document).on('click', 'a', aBindFn);
$(top.document).on('submit', 'form', formBindFn);
也就是说,它将事件处理程序附加到
window.top.document
。您可以使用以下命令关闭该行为:

$.DirtyForms.watchParentDocs = false;

在Dirty Forms 2.x中,此行为已被删除,因为它只涉及iFrame的一个特定用例(在iFrame中托管使用Dirty Forms的表单)。现在,您可以根据页面的需要将事件处理程序附加到父(主机)页面或子iFrame,但默认情况下,没有与iFrame的交互。这应该使您能够解决像这样的问题。

这两个问题都涉及父级试图在子iframe中执行代码的问题。我的情况并非如此。正在执行的代码位于iFrame中,且仅与iFrame相关。如果“正在执行的代码位于iFrame中且仅与iFrame相关”,为什么需要访问
contentWindow