Disqus на странице amp внутри iframe

Я пытаюсь реализовать Disqus в документе amp. Моя идея - использовать amp-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>

Тем не менее, 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 позволено. Это ограничение исходит от использования iframe disqus. Это не проблема, когда я использую встроенную изолированную программную среду <iframe> вместо <amp-iframe>,

Я хотел бы создать пример, но из-за конструкции iframe я не могу просто создать jsfiddle.

1 ответ

Похоже, это экземпляр этой ошибки: https://code.google.com/p/chromium/issues/detail?id=541221

То же самое происходит со стандартным iframe, если используется атрибут sandbox.

Добавление allow-same-origin к вашему определению песочницы, кажется, это исправить. Я заметил, что в Firefox теперь тоже самое, несмотря на комментарий в этой ошибке (хотя firefox не перечисляет ошибку как явный), что она там работает. Так может это так и должно работать? Не могу сказать, что знаю достаточно об атрибуте песочницы, чтобы сказать вам это.

Тем не менее, в общем, я не уверен, что это такая прекрасная идея в любом случае. Будет ли у вас не-AMP версия этой страницы? Лично я не вижу случая для страницы только с AMP, поскольку я думаю, что это ограничивает вас, поскольку 1) не все возможно в AMP и 2) некоторые клиенты не будут загружать это (например, если нет JavaScript или не понимают AMP)), поэтому я предпочитаю иметь настоящую HTML-страницу тоже. Однако, если у вас есть отдельные страницы HTML и AMP, они будут отслеживать комментарии отдельно (если вы не загрузите свою страницу, не являющуюся AMP, в этот iframe и каким-то образом скроете все, кроме комментариев - но это кажется пустой тратой!).

Таким образом, способ, которым я реализую это в настоящее время, состоит в том, чтобы добавить ссылку "нажмите здесь, чтобы просмотреть комментарии" на мои страницы AMP, которые перенесут их на полную страницу - с комментариями. Не очень хорошее решение, но, по крайней мере, объединяет комментарии.

Другие вопросы по тегам