我尝试在放大器文档上实现Disqus.我的想法是使用一个amp-iframe 加载一个只包含Disqus的小文档.我使用了这个放大器框架
more!
但是,chrome会引发内容安全策略违规:
拒绝加载脚本' https://a.disquscdn.com/next/embed/lounge.load.f3e1717b71e7256da258d3a504e56865.js ',因为它违反了以下内容安全策略指令:"script-src https:// .twitter.com : https : //api.adsnative.com/v1/ad.json *.adsafeprotected.com https://cas.criteo.com/delivery/0.1/napi.jsonp .services.disqus.com: http:// referrer .disqus.com/juggler / disqus.com http:// .twitter.com: a.disquscdn.com https://referrer.disqus.com/juggler/ https:// .services.disqus.com:*.moatads .com'unsafe-eval'https: //mobile.adnxs.com/mob https://ssl.google-analytics.com ".
所以基本上,https://a.disquscdn.com/next/embed/lounge.load.f3e1717b71e7256da258d3a504e56865.js
即使a.disquscdn.com
允许,也不会加载chrome .此限制来自iframe disqus使用.当我使用原生沙盒而不是使用沙盒时,这不是问题
.
我想创建一个例子,但由于iframe结构,我不能简单地创建一个jsfiddle.
它似乎是此错误的一个实例:https: //code.google.com/p/chromium/issues/detail?id = 541221
同样的事情也如果使用沙箱属性与标准的iframe发生.
添加allow-same-origin
到您的沙盒定义似乎解决了它.我注意到它在Firefox中也是一样的,尽管该bug中的注释(尽管firefox没有明确列出错误)它在那里工作.那也许这就是它应该如何工作?不能说我对沙箱属性的了解足以告诉你.
但是,顺便说一句,我不确定这是个好主意.你有这个页面的非AMP版本吗?就个人而言,我没有看到只有AMP页面的情况,因为我认为这限制了你,因为1)并非一切都可能在AMP和2)一些客户端不会加载这个(例如,如果没有javascript,或者不理解AMP ),所以我更喜欢有一个真正的HTML页面.但是,如果您有单独的HTML和AMP页面,那么他们将分别跟踪评论(除非您将非AMP页面加载到此iframe中,并以某种方式隐藏除评论之外的所有内容 - 但这似乎完全是浪费!).
因此,我目前实现此方法的方法是在我的AMP页面添加"点击此处查看评论"链接,将其带到整页 - 带有评论.不是一个很好的解决方案,但至少可以保持评论.