在iframe中更改iframe的src

当我尝试在iframe中更改iframe的src时,我在Chrome中遇到此问题(在本地运行文件),我收到此错误消息

Error = Uncaught SecurityError:无法从’HTMLIFrameElement’读取’contentDocument’属性:阻止具有原点“null”的帧访问具有原点“null”的帧。 协议,域和端口必须匹配。

这是我用来检索iframe的代码

iframe = $("iframe").contents().find('iframe'); iframe.attr("src", url);` 

将文件上传到服务器时,我不会遇到此问题。 但如果我在本地打开它我就会收到错误。

它在firefox和safari中运行良好。

我如何在chrome和其他浏览器中执行此操作?

所有浏览器内置的安全function可确保Javascript无法与其他窗口和/或框架中的对象进行交互(如果这些Windows或框架是从其他站点加载的)。 这通常被称为“同源政策”。 是否从其他站点加载了某些内容由URL的主机名部分决定。 例如,如果从http://yoursite.com加载外框并且从http://example.com加载内框,那么在外框范围内运行的Javascript将无法访问或修改任何属性或内框范围内的物体。

在这种情况下,特定错误表示您的Javascript(在外部框架的上下文中运行)被拒绝访问其范围是内部框架的对象(contentDocument)。 在您尝试使用的jQuery中隐藏的某个地方将是对框架文档元素的隐式访问(由该iframe的contentDocument属性访问)。

您可以通过销毁iframe并使用所需的src重新创建新的iframe来解决此问题。