2015-12-29 3 views
5

Я пытаюсь реализовать Disqus на документе усилителя. Моя идея - использовать , который загружает небольшой документ, содержащий только Disqus. Я использовал этот усилитель кадрDisqus на странице amp внутри amp-iframe

<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> 

Однако хром бросает нарушение политики безопасности контента:

Отказался, чтобы загрузить скрипт «https://a.disquscdn.com/next/embed/lounge.load.f3e1717b71e7256da258d3a504e56865.js» , потому что он нарушает следующее содержание директивы политики безопасности: " скрипт-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 ".

Таким образом, хром не загружается https://a.disquscdn.com/next/embed/lounge.load.f3e1717b71e7256da258d3a504e56865.js, хотя a.disquscdn.com разрешен. Это ограничение исходит от использования iframe disqus. Это не проблема, когда я использую встроенную песочницу вместо <amp-iframe>.

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

ответ

6

Это, как представляется, является экземпляр этой ошибки: https://code.google.com/p/chromium/issues/detail?id=541221

То же самое делает случиться со стандартным IFRAME, если используется атрибут песочницы.

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

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

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

+1

Обсудить ожидает Параметр с URL-адресом страницы, поэтому разные разделы комментариев не будут проблемой. Также да, я пытаюсь выполнить полную страницу amp только для проверки. Я попробую добавить этот атрибут песочницы позже, но в прошлый раз, когда я попробовал, он ничего не делал. Я также добавил атрибут sandbox к нормальному Iframe, и это действительно сработало (но возможно, что я сделал что-то не так.) – Nemo64

+1

'allow-same-origin' работает, но amp-iframe имеет одно ограничение:« Они не должны быть в том же самом происхождении, что и контейнер, если только они не позволяют разрешать одинаковое происхождение в атрибуте песочницы ». Я действительно не понимаю, почему это ограничение существует, но если я использую другой домен, чем все в порядке. – Nemo64

+0

Да, я тоже этого не понимаю. Полагаю, они хотят, чтобы вы не использовали это как работу, чтобы притворяться, что это документ AMP, когда это не так. Кроме того, запутанная формулировка «не использует одно и то же происхождение, если разрешить-то же самое происхождение не установлено»?!? Интересное предложение о передаче правильного URL-адреса Disqus. Должно заглянуть в это больше, поскольку в настоящее время я использую настройки по умолчанию, которые получают его из URL-адреса страницы. Возможно, будет возможно получить эту работу над документом AMP ... –

Смежные вопросы