2015-12-29 7 views
5

Provo ad implementare Disqus su un documento di ampli. La mia idea è di usare un che carica un piccolo documento che contiene solo Disqus. Ho usato questa cornice ampliDisqus su una pagina di ampli all'interno di un 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> 

Tuttavia, Chrome lancia una violazione delle norme di sicurezza dei contenuti:

Rifiutato di caricare lo script 'https://a.disquscdn.com/next/embed/lounge.load.f3e1717b71e7256da258d3a504e56865.js' perché viola la seguente direttiva politica di sicurezza contenuti: " 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 'insicuro-eval' https://mobile.adnxs.com/mobhttps://ssl.google-analytics.com ".

Quindi, fondamentalmente, Chrome non caricare https://a.disquscdn.com/next/embed/lounge.load.f3e1717b71e7256da258d3a504e56865.js anche se a.disquscdn.com è permesso. Questa restrizione proviene da usi di iframe disqusti. Questo non è un problema quando utilizzo un sandboxed nativo anziché <amp-iframe>.

Mi piacerebbe creare un esempio, ma a causa del costrutto iframe non posso semplicemente creare un jsfiddle.

risposta

6

sembra essere un esempio di questo bug: https://code.google.com/p/chromium/issues/detail?id=541221

La stessa cosa fa accadere con un iframe normale se si utilizza l'attributo sandbox.

L'aggiunta di allow-same-origin alla definizione della sandbox sembra risolvere il problema. Ho notato che è lo stesso anche in Firefox, nonostante il commento in quel bug (anche se Firefox non elenca l'errore come esplicitamente) che funziona lì. Quindi forse è così che dovrebbe funzionare? Non posso dire di conoscere abbastanza bene l'attributo sandbox per dirti questo.

Tuttavia, per inciso, non sono sicuro che sia comunque una grande idea. Avrai una versione non AMP di questa pagina? Personalmente non vedo il caso di una pagina solo AMP, perché penso che questo ti limiti dal 1) non tutto è possibile in AMP e 2) alcuni client non caricheranno questo (ad esempio se non javascript, o non capisco AMP), quindi preferisco avere anche una vera pagina HTML. Tuttavia, se hai pagine HTML e AMP separate, tracciano i commenti separatamente (a meno che non carichi la tua pagina non AMP in questo iframe e in qualche modo nascondi tutto tranne i commenti - ma sembra uno spreco completo!).

Quindi il modo in cui lo implemento attualmente è aggiungere un link "fai clic qui per visualizzare i commenti" alle mie pagine AMP che li portano alla pagina intera - con commenti. Non è una grande soluzione, ma almeno mantiene i commenti insieme.

+1

Discuss si aspetta un parametro con l'URL della pagina in modo che le diverse sezioni di commento non costituiscano un problema. Inoltre sì, provo una pagina completa dell'amplificatore solo per testare. Proverò ad aggiungere l'attributo sandbox in seguito, ma l'ultima volta che l'ho provato non ha funzionato. Ho anche aggiunto l'attributo sandbox al normale Iframe e questo ha funzionato (ma è possibile che abbia fatto qualcosa di sbagliato lì.) – Nemo64

+1

'allow-same-origin' funziona ma l'amp-iframe ha una limitazione:" Non devono trovarsi nella stessa origine del contenitore a meno che non consentano allow-same-origin nell'attributo sandbox. ". Non capisco davvero perché questa limitazione è lì, ma se io uso un dominio diverso da quello che va bene. – Nemo64

+0

Sì, non capisco neanche questo. Immagino che vogliono che tu non lo usi come un tentativo di far finta che sia un documento AMP quando non lo è. Formulazione anche confusa "non usare la stessa origine a meno che non sia impostata l'autorizzazione-stessa origine"?!? Suggerimento interessante sul passaggio dell'URL corretto a Disqus. Deve esaminarlo di più poiché attualmente utilizzo i valori di default che ottengono dall'URL della pagina. Forse sarà possibile ottenere questo lavoro sul documento AMP ... –

Problemi correlati