Próbuję zaimplementować Disqus na dokumencie wzmacniacza. Moim pomysłem jest użycie amp-iframe , który ładuje mały dokument, który zawiera tylko Disqus. Użyłem tego wzmacniacza ramkęDisqus na stronie wzmacniacza wewnątrz 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>
Jednak chrom rzuca naruszenie zasad bezpieczeństwa Treść:
Odmówił załadować skrypt „https://a.disquscdn.com/next/embed/lounge.load.f3e1717b71e7256da258d3a504e56865.js” ponieważ narusza następującą dyrektywę Polityka Bezpieczeństwa utworu: " 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 'niebezpieczne-eval' https://mobile.adnxs.com/mobhttps://ssl.google-analytics.com ".
Więc w zasadzie, chrome nie ładuje https://a.disquscdn.com/next/embed/lounge.load.f3e1717b71e7256da258d3a504e56865.js
chociaż a.disquscdn.com
jest dozwolone. To ograniczenie pochodzi z iframe disqus. Nie stanowi to problemu, gdy używam natywnego piaskownicy zamiast <amp-iframe>
.
Chciałbym stworzyć przykład, ale ze względu na konstrukcję iframe nie mogę po prostu stworzyć jsfiddle.
Dyskusja oczekuje parametru z adresem strony, więc różne sekcje komentarzy nie stanowią problemu. Tak, próbuję również kompletnej strony wzmacniacza, aby przetestować. Spróbuję dodać ten atrybut piaskownicy później, ale ostatnim razem, gdy go wypróbowałem, nic nie zrobiłem. Dodałem również atrybut piaskownicy do normalnego elementu iframe i to zadziałało (ale możliwe, że coś tam zrobiłem źle.) – Nemo64
'allow-same-origin' działa, ale amp-iframe ma jedno ograniczenie:" Nie mogą one znajdować się w tym samym źródle co kontener, chyba że nie zezwalają na zezwolenie na to samo źródło w atrybucie sandbox. ". Naprawdę nie rozumiem, dlaczego to ograniczenie istnieje, ale jeśli używam innej domeny, niż wszystko jest w porządku. – Nemo64
Tak, też tego nie rozumiem. Chyba chcą, żebyś nie używał tego jako pracy do udawania, że jest dokumentem AMP, kiedy nie jest. Również mylące sformułowanie "nie używaj tego samego pochodzenia, chyba że nie zostało ustawione zezwolenie na to samo źródło"?!? Interesująca sugestia dotycząca przekazania prawidłowego adresu URL do Disqus. Muszę zajrzeć do tego bardziej, ponieważ obecnie używam domyślnych ustawień, które pobierają z adresu URL strony. Być może uda się to zrobić na dokumencie AMP ... –