[ChromeExtension] URLリストを順番に表示する

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

ChromeExtensionを使ってデバッグツールを作ろうと目論んでいるので、スニペットなどを作り貯めて置こうと模索中。
今回は、ポップアップウィンドウに記載されたURLリストを表示しているタブに表示していくというコードを書いてみました。
ポップアップは、タブの外部HTMLに当たるので、location.hrefでの変更ができないので、chrome-APIのtab関数をうまく使ってコントロールしてます。

Summery

前回のタブURLを取得するやり方の応用なので、変更のあったモジュールのみ掲載します。
そして今回の仕様は、エクステンションアイコンをクリックして表示されるポップアップウィンドウに表示されているtextareaタグに改行区切りで登録されているURLの一覧を、3秒毎に表示しているタブのURLを切り替えていくというだけのモノですが、これで表示ページ内との情報連携が取ることができれば、seleium的なツールが作れるという事です。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-22-19-06-17

Source

解説

URLリストは、その場で登録してもいいし、saveボタンでlocalStorageに保存する仕様にしているので、便利に使えると思います。
「view」というボタンを押すと、textareaの文字列を読み込んで、改行区切りで配列にします。
その配列を順番にタブのURLを切り替えるんですが、
タグURLの切り替えは

そして切り替えています。
***をURLにすれば、開いているタブのURLが切り替わりますが、ループをそのまま実行すると、表示する前に次のページが開いてしまい、
URLが大量に登録されていても一瞬で終わってしまうので、1つのURLを表示したら独自のsleep関数を使って、3000ミリ秒のウェイトを掛けています。
ちなみにsleep関数が気になる方は、下記ブロクを参照してください。
ページ離脱などの際にデータ保存する時間をウェイトさせる方法

Github

今回もgithubにサンプルソース一式をおいてあります。
https://github.com/yugeta/setTagUrl

下記コマンドでゲトしてください。

イケてないポイント

どうやらリスト表示する際に、一番最初の表示がうまく表示されない場合があります。
スリープ処理がうまくいっていないのか、対象サイトの問題なのかわかりませんが、ページの表示確認を行う処理にした方がよさそうです。
う〜ん、課題が多いなあ・・・・

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です