アンプのドキュメントにDisqusを実装しようとしています。私の考えは、amp-iframe を使用して、Disqusだけを含む小さな文書を読み込むことです。それは、次のコンテンツセキュリティポリシーの指示に違反しているため、スクリプト 「https://a.disquscdn.com/next/embed/lounge.load.f3e1717b71e7256da258d3a504e56865.js」 をロードするために拒否アンプのiframe内のアンプページのDisqus
: 「私はこのアンプ枠しかし
<amp-iframe width="300" height="300" layout="responsive" sandbox="allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-scripts" resizable frameborder="0" seamless src="/disquss/name-of-blog-post"> <div overflow tabindex=0 role=button aria-label="Read more">more!</div> </amp-iframe>
を使用し、クロムは、コンテンツセキュリティポリシー違反をスローしますスクリプト-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 '安全ではない-evalの' https://mobile.adnxs.com/mobhttps://ssl.google-analytics.com "となります。
a.disquscdn.com
が許可されていても基本的にクロムにはhttps://a.disquscdn.com/next/embed/lounge.load.f3e1717b71e7256da258d3a504e56865.js
がロードされません。この制限は、iframe disqusの使用に起因します。 <amp-iframe>
の代わりにネイティブサンドボックスを使用すると、問題はありません。
私は例を作成したいと思っていましたが、iframeの構造のために単純にjsfiddleを作成することはできません。
ディスカッションでは、ページURLを持つパラメータが必要になるため、異なるコメントセクションが問題になることはありません。また、はい、テストするために完全なアンプページを試してみます。あとでそのサンドボックス属性を追加しようとしますが、前回試みたときに何もしませんでした。また、通常のIframeにサンドボックス属性を追加しても問題ありませんでした(ただし、そこに何か問題があった可能性があります)。) – Nemo64
'allow-same-origin'は動作しますが、amp-iframeには1つの制限があります:"サンドボックス属性でallow-same-originを許可しない限り、コンテナと同じ起点にあってはなりません。私は本当になぜこの制限があるのかは分かりませんが、もし私がすべてのものとは違うドメインを使っていればうまくいきます。 – Nemo64
はい私はどちらもそれを得ていません。あなたは、そうでないときにAMPドキュメントであるとふるまうために、これを回避策として使用しないことを望んでいると思います。また、「同じ原点を設定することができない限り、同じ原点を使用しないでください」という混乱した言葉?正しいURLをDisqusに渡すことに関する興味深い提案。現在、ページURLから取得するデフォルトを使用しているので、それ以上のことを調べなければなりません。たぶんこれはAMPドキュメント上で動作するようになるでしょう... –