好的,我需要做的是相当简单:
$('iframe').contents()
之类的内容时,通过Chrome javascript控制台,我收到有关同源的警告等。有什么想法吗?应该真的很容易......
P.S。我对不包含iframe
的解决方法不感兴趣 - 是iframe
...
答案 0 :(得分:2)
(1)
这是因为您在iframe中加载的网站与托管iframe的网站位于不同的域中。
请参阅:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Same_origin_policy_for_JavaScript
因此,相同的原始政策将禁止Javascript访问/操纵iframe内的页面。
(2)
还有一个使用HTML5进行沙盒的概念,此属性可以对内嵌框架中显示的内容进行额外限制。标记是:allow-same-origin,allow-scripts等。
更多信息:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe
请检查您的iframe是否为沙盒?
(3)
然后,有X-Frame-Options
HTTP响应标头,可用于指示是否应允许浏览器在iframe中呈现页面。站点可以通过确保其内容未嵌入到其他站点中来避免点击劫持攻击。它看起来像这样:
<meta http-equiv="X-FRAME-Options" content="SAMEORIGIN">
此处的令牌可以是:deny,sameorigin或allow-from。
更多信息:https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options
并且:http://tools.ietf.org/html/rfc7034
请检查您的网页是否有此标题?
(最后):
如果以上所有内容都不适用于您的方案,那么事情就应该有效。请发布更多信息,例如标记和您的javascript。