在iframe中更改iframe的src

mah*_*.cr 3 html javascript iframe jquery

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

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

这是我用来检索iframe的代码

iframe = $("iframe").contents().find('iframe');
iframe.attr("src", url);`
Run Code Online (Sandbox Code Playgroud)

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

它在firefox和safari中运行良好.

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

tho*_*ter 11

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

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

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