Javascript iframe无法访问其父窗口属性
过去,如果iframe是CORS,我可以从iframe访问父窗口中的属性和函数。例如:Javascript iframe无法访问其父窗口属性,javascript,google-chrome,iframe,Javascript,Google Chrome,Iframe,过去,如果iframe是CORS,我可以从iframe访问父窗口中的属性和函数。例如:window.parent.api.func()。然而,它在最新版本的Chrome中停止工作。引用父窗口属性时,出现以下异常: "Uncaught DOMException: Blocked a frame with origin "http://localhost:8090" from accessing a cross-origin frame.(…)" 我从父窗口了解到访问iframe需要使用post
window.parent.api.func()
。然而,它在最新版本的Chrome中停止工作。引用父窗口属性时,出现以下异常:
"Uncaught DOMException: Blocked a frame with origin "http://localhost:8090" from accessing a cross-origin frame.(…)"
我从父窗口了解到访问iframe需要使用postMessage。但是,如果从iframe访问父窗口,应该没有问题。为什么它停止工作?不同的端口视为不同的域。要么像你说的那样使用postMessage,要么确保端口匹配。还要确保您的计算机的IP地址不是一个,本地主机不是另一个——它必须完全匹配。CORS真的是问题所在吗?我相信它曾经是有效的。如果CORS(在不同的端口上)确实阻止访问父窗口,我可以尝试使用反向代理绕过它,但是如果没有它,尤其是在开发期间,这会容易得多。您可以更改计算机上的主机文件并使它们匹配。为
localhost:8090 somenewname.com
和localhost:otherport somenewname.com
添加主机条目,然后对这两个窗口使用somenewname.com
。谢谢您的建议。但我不认为hosts文件可以有与其关联的端口。这只是一个dns名称转换。发现了一个相关的讨论:现在我相信我过去所做的是使用反向代理来避免CORS问题。这应该行得通。