2016-10-25 5 views
4

JavaScriptがAMPページでどのように実行されるのか混乱しています。AMPでJavaScriptを実行しています

私はJavaScriptをiframeで実行する必要があることを理解しています。そのようなiframeはページ内に配置しなければならず(少なくとも上から75%)、https経由で提供される必要があります。そのページで

<amp-iframe 
    width=300 
    height=300 
    sandbox="allow-scripts allow-popups allow-popups-to-escape-sandbox" 
    layout="responsive" 
    frameborder="0" 
    src="https://localhost:8000/?p=myjs"> 
</amp-iframe> 

https://localhost:8000/?p=myjs)私は自由に私のJSを実行することができます。これは、実際に作業を行います。

私の問題はしかし、以下である:

は、どのように私はインラインフレームを含むメインページの文書に対して、私のコードを実行することが出来るのですか?

window.parent.documentにアクセスしようとしましたが、ブロックされています。 (もちろん)。

私たちのすべてのjsが殺されると、AMPの人々が実際にページをAMPに移植できるとどのように考えているか説明できる人はいますか?私たちのjをAMPページで動かすための推奨パターンは何ですか?そのようなことはありますか?それとも、開発者はすべてのコードをダンプする必要があると想定されていますか?

おかげで、私はインラインフレームを含むメインページの文書に対する私のコードを実行することが出来るのですか

+0

この質問については、ここで詳しく説明します。 https://stackoverflow.com/questions/36035733/google-amp-best-way-to-write-js-script-tag – Tom

答えて

8

あなたはそうではありません。

私たちのすべてのjsが殺されると、AMPの人々が実際にページをAMPに移植できるとどのように説明できるのでしょうか?

JavaScriptに依存しない軽量ページを作成するというアイデアがあります。 the specから

AMP HTMLは、特定のベースラインの性能特性を保証した方法で、このようなニュース記事などのコンテンツページを作成するためのHTMLのサブセットです。

「ニュース記事などのコンテンツページ」にはJavaScriptが必要ありません。あなたがそのようなページを書いていないなら、多分AMP HTMLは言語の良い選択ではなく、HTML 5に固執するべきです。

+1

すべてクリアしました。ありがとう – nourdine

+0

スクリプトタグにasyncを組み込み、あなたのjsを実行することは可能ですか?私は自分の現地とその仕事でこれを試した。 – Fyre

4

AMPの基本的な柱の1つは、独自のJavaScriptを実行することはできません。アイデアは、Webページをより速く、よりシンプルに、より信頼性の高いものにすることです。

実際にJSをiframeで実行できますが、JSのメインページとのやりとりは非常に制限されます。

したがって、vue.jsのようなフレームワークを使用すると、AMPのポイントに反します。

一方、AMPには、ほとんどのJSの必要性を取り除くあらゆる種類のビルトインのものが付属しています。これはWebコンポーネントライブラリです。とを介してかなりの量の動的なやりとりとサーバー通信が可能です。

0

AMP Conf 2018では、Webワーカーを使用してカスタムJS in AMPのサポートが導入されました。今年後半には準備ができているはずです。

関連する問題