0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

簡単なChrome Extension: 日本株の4桁証券コードから各株式情報サイトへ遷移

Posted at
これは何

株式投資をされる方は、
「バフェットコード」や「四季報オンライン」などの株式情報サイトを読んだり、
「TradingView」でチャートを見たり、GoogleSpreadsheetでデータを整理したりなど、
いくつかのサイトやサービスをまたいで、WEBブラウザ上で多くの作業をされることが多いことと思います。

そこで、「ブラウザで表示しているページのどこかにある4桁証券コードから、別の株式情報サイトの個別銘柄ページに遷移できる」
機能をChrome Extensionで実装してみました。

使い方

ストアには登録はしてないのですが、
https://support.google.com/chrome/a/answer/2714278?hl=ja の「手順 2: アプリや拡張機能をテストする」
を参考にExtensionをブラウザに登録することで使えるようになります。

Extensionを追加すると、
ブラウザ文書表示中の右クリックコンテキストメニューに「株式銘柄情報サイトへのリンク」というメニューが追加されるので、
ブラウザで表示している文書中の、4桁の数値テキストをカーソルで選択したうえで、
メニューから任意のサイトの個別銘柄ページに遷移できます。

機能はこれだけですが、SpreadSheetで作った銘柄一覧表を見てるときに別のサイトに移動して詳しく調べたい、といったことが結構あるかと思うので、
とてもシンプルな割には役に立つのではないかと思っています。
(遷移先がログインが必要なサイトの場合は、事前にログインしておいたりは必要になりますが)

プログラムについて

background.jsがメインのプログラムで、
ここの右クリックコンテキストメニューのイベントリスナーに登録(chrome.contextMenus.onClicked.addListener)した関数で、
遷移先各サイトのURLを、カーソルで選択中の文字列で個別銘柄ページのURLに置換して、新たなタブで開く、といったことをやっているだけです。
一部サイトのURLは単純な置換だけでは対応できなかったので、条件分岐で個別対応のコードを入れています。

遷移先サイトのリストは site.js のconstに列挙しているので、追加したいサイトが有る場合はここで追加できます。

設定用のポップアップも作ってみました(option.htmlとoption.js)
サイトリストの表示のON/OFFをここで切り替えることができます。
(設定内容はlocalStorageに保存されます)

当初はManifest V2用に作っていたのですが、
Manifest V3に対応するにあたって manifest.jsonを何箇所か直しました。

  • background.scriptsをbackground.service_workerに変更。
    background.scriptsには複数のスクリプトを登録してましたが、service_workerには1つしか登録できないようなので、
    登録したスクリプトの中で別のスクリプトをimportScriptsするようにした
    (具体的には、background.jsの最初に importScripts('sites.js'); を入れた
  • browser_actionをactionに変更
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?