在我的本地主机上,我使用以下 JavaScript 创建一个带有 src
的 iframe
,并将其添加到文档中:
$('#preview').html('<iframe src="http://google.com/"></iframe>');
iframe 显示但不显示内容。在 Firebug 中,它只是:
<iframe src="http://google.com/">
<html>
<head></head>
<body></body>
</html>
</iframe>
当我在控制台上执行 $('iframe').attr('src','http://google.com/');
时,浏览器加载(显示“等待google.com..."),然后似乎刷新了 iframe 的内容。但同样,它是空的。
不过,如果我将其设置为本地页面,则会加载内容。
这是因为同源策略吗?我不是很了解它。我进行了一些谷歌搜索,我感到很困惑,因为有些网站说可以包含一个带有不属于您自己域的 src 的 iframe,而有些网站则说这是不可能的。
顺便说一下,由于我仍在本地主机上进行测试,如果我将其上传到某处的服务器,这是否可行? (但是 iframe 的 src 仍然在不同的域中)
帮忙吗?
最佳答案
如果您检查过浏览器的错误控制台,您会看到这条消息:
Refused to display document because display forbidden by X-Frame-Options.
因此,这不是您的错误,而是 Google 的故意行为。
X-Frame-Options
的两个选项是:
deny
- 帧内不渲染,并且sameorigin
- 如果原点不匹配则不渲染
引用资料:
关于javascript - 动态创建的 iframe 内容为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10366646/