LoginSignup
3
2

More than 5 years have passed since last update.

chromeの拡張機能でAMPページ検出ツールを作ってみた

Last updated at Posted at 2016-12-19

モチベーション

「このページってAMPページなのかな」って調べることが多く、面倒だった。

手作業の場合

  1. 適当なURLを開く
  2. デベロッパーツール
  3. Elements
  4. Command + f「amphtml」
  5. 見つかった。-> URLをコピペして貼り付け
  6. なかった。。。 -> 終了。。。

このなかった場合が、けっこう意気消沈するので、その辺りもなんとかなれば。

機能(できたもの)

機能1. 拡張機能のバッジでAMPページの有無を確認できる。

AMPページあり AMPページなし
スクリーンショット 2016-12-20 0.22.38.png スクリーンショット 2016-12-20 0.24.55.png
Amp Project News Google Developers Blog

機能2. バッジクリックで、AMPページを新規タブで表示

クリック前 クリック後
スクリーンショット 2016-12-20 0.22.38.png スクリーンショット 2016-12-20 0.29.08.png

クリック前:https://amphtml.wordpress.com/2016/12/05/amp-cache-updates/
クリック後:https://amphtml.wordpress.com/2016/12/05/amp-cache-updates/amp/

Wordpressのampプラグインは末尾に「amp/」がつくので、上記のような形になります。

公開について

はじめて拡張機能を作ってみましたが、公開の仕方がイマイチ分からなかったので、また時間があるときに調べてみます。
あと、ちょっと機能的に微妙な箇所と無駄なコードがいろいろあるきがするので、当面は自分のchromeのみで仕事で使おうと思います。

作り方

機能と参考URLだけ紹介。

・link rel="amphtml"からhref=""の中身を取得
javascript:正規化された(canonical)URLを取得する

・background.jsとmyscript.jsのデータの受け渡し
Chrome機能拡張のイベントページについて
- 今回はmyscript.jsでamphtmlのhrefを取得して、background.jsにhrefの値を送った。

・chrome.tabs.onUpdated.addListener
- タブが更新されるたびにbackground.js起動

・chrome.browserAction.onClicked.addListener
- 右上の拡張機能ボタンクリックでURLを新規タブで開く

・chrome.browserAction.setBadgeText
- バッジに「AMP」と表示

いろいろ整理したら、またちゃんと紹介します!

最後に

だいぶハマって寝るのが遅くなりましたが、とても勉強になったのと、AMPの拡張機能を作れてとても嬉しいです。
また、改良して公開できるようにしたいです。

そもそも公式のプラグインがありました。

(追記:2016年12月30日金曜日)

AMPページがしっかりと機能しているかどうかを判断するために、前々からAMP validatorの拡張機能は入れていたのですが、このプラグインにそもそも、自分が欲している機能があることに今気づきました。

なので、今回、上で取り上げたプラグインを使いたい方は、公式のAMP validatorプラグインを利用することをオススメします。

ちなみに公式の拡張機能のbackground.jsがどのように動いているかは、chromeの拡張機能の管理から確認することができるので、詳しい仕様を知りたい方はこちらを確認するのがお勧めです。

スクリーンショット 2016-12-30 13.52.30.png

こんな感じで確認できます。
スクリーンショット 2016-12-30 13.54.31.png

便利

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2