通过iframe加载的页面无法加载?

3

我有一个图片缩放工具,是从Bulk Resize Photos获得的。我需要将其添加到我CMS功能中称为Participant Centre。

由于某种原因,代码本身无法在参与者中心中工作(它显示为空白),但在Participant centre之外的HTML页面中可以工作。所以我想也许使用iframe会起作用。

现在,iframe的框架显示出来了,但内容没有显示。

HTML:

<div id="BulkResizePhotosEmbed"></div>
<script type="text/javascript" src="https://bulkresizephotos.com/js/integration.js">
</script>
<script>
bulkresizephotos.load({ "resize_type": "exact", "resize_value": "300", "secondary_resize_value": "400", "quality_level": "0.5", "extension": "jpg", "preserve_aspect_ratio": true, "transparent_background": true, "background_color": "ffffff" });
</script>

我可以帮您翻译以下内容,涉及IT技术相关:

我有以上代码在一个单独的HTML文档中,该文档托管在与参与者中心相同的服务器上。

HTML:

<iframe src="http://www.supportcbcf.com/site/PageNavigator/reus_image_resize.html"></iframe>

我也尝试了将上面的链接变成安全链接(https),但是它仍然无法加载。我在js fiddle中尝试了一下,但那里也无法工作。现在我不认为参与者中心会阻止任何javascript代码,因为它有一个温度计和募款美元,可以动态更新。我查看了控制台日志,没有收到任何错误信息。
如能提供帮助,将不胜感激!
谢谢。

2
不可能的。您试图嵌入的网站不允许这样做。打开您的浏览器控制台查看错误(F12)=> 拒绝在框架中显示'https://...',因为其祖先违反了以下内容安全策略指令:“frame-ancestors 'self' *.facebook.com *.salesforce.com *.convio.net *.google.com *.force.com facebook.com salesforce.com convio.net google.com force.com”。 - blex
嗨 @blex,谢谢你的回复!我检查了控制台,唯一看到的错误是关于 JSON.parse 和 Janrain_Config——Janrain 一直存在问题,JSON.parse 是在说我的代码吗?这就是为什么它说是匿名的原因吗? - SorryEh
哦,哇,这太奇怪了,我没看到那条消息。谢谢 Blex!你能把它发成答案吗?我会勾选它的。我知道一个解决办法,就是直接给人们提供工具的链接。 - SorryEh
可能是Url is not loading in iFrame Blank Screen的重复问题。 - Ivar
2个回答

8
为了使他们的网站更加安全,并避免被显示在其他网站中(这可能会降低用户体验,甚至让用户认为内容来自另一个站点),一些网站设置了Content Security Policy,定义了允许的frame-ancestors。这使得他们可以通知浏览器只允许嵌入到特定的网站中。
如果您打开浏览器控制台,您将看到以下错误信息:
"Refused to display 'https://...' in a frame because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self' *.facebook.com *.salesforce.com *.convio.net *.google.com *.force.com facebook.com salesforce.com convio.net google.com force.com"。
如果您的网站域名不符合规则,您的浏览器将阻止该页面。
以下是一个例子,说明此功能的好处:
假设evilwebsite.com想要更多Facebook点赞。他们可以在他们的网站上嵌入他们的Facebook页面的iframe,使其opacity:0,并放置在他们的内容前面,一个按钮紧贴着不可见的“Like”按钮。点击它的人实际上会点击“Like”按钮。免费的赞!这就是为什么您不能在您的网站上嵌入一个普通的Facebook页面。

1
谢谢 blex!这个帮我节省了很多时间。不确定为什么我的控制台在谷歌浏览器上没有显示那个错误,但是我找到了解决办法。再次感谢 :) - SorryEh
@SorryEh你能分享一下解决方法吗?我在这一步卡住了,需要让它再次正常工作。 - Jigar Trivedi
@JigarTrivedi 我在这个问题上特别使用了Luminate Online CRM/CMS,所以可能不适用于你。虽然这是一段时间之前的事情,但如果我没记错的话,我使用了一个页面包装器来加载工具,然后将该页面包装器插入到我需要工具可用的特定页面中。 - SorryEh

-4

我认为这个网站不允许使用JavaScript,所以对于这个问题没有答案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接