投稿

ラベル(Google Chrome拡張機能 API)が付いた投稿を表示しています

[備忘録] URLのパラメータを変更してGoogleのドキュメントを他言語で表示 (Host Language)

イメージ
世の中にはプログラミング言語が英語なのはおかしいと思う人もいるみたいですが、現時点では生活環境の言語が英語なのでプログラミングなどの仕様書はどうしても英語で読んでいます。 Android や Chrome Extension などのAPI仕様書はGoogle社のサイトなので、同社の翻訳機能のご利益があるのか多言語に翻訳されているページが多いのですが、まだすべての文書が日本語に翻訳されている訳ではありません。 また、プログラミングでつまずいた時に参考になる Stackoverflow といったサイトでも色々な言語に対応していますが、英語を前提に書かれている文章が多いので英語で読んだ方が文章に違和感が無い様な気もします。。 また、最近では違う言語で表示するオプションが付いているサイトも多いので表示言語を簡単に操作出来る様になっていますが、最近、 Google関連のサイトで言語表示に関係するちょっとした不都合 があったのでその対処法をここに 備忘録として 残しておきます。 AndroidやChrome ExtensionなどのGoogle社が公開している仕様書だと、ページの右上に表示言語を選択するメニューがあるので比較的簡単に表示言語を変更する事が出来ました。。 でも、最近、日本語版のAndroidアプリのテストの関係でAndroidスマホの言語設定を日本語に設定しているせいか、ブラウザでGメールなどを開きながらGoogle関連のページを表示すると半強制的に日本語表示になってしまいます。 以前でもブラウザによっては、違う表示言語を選択してもページが切り替わらず、ブラウザの「更新」を押さないといけないという事もありましたが、ブラウザでGoogleアカウントにログインした状態だとGoogle関連のページではアカウントの言語設定が表示言語として優先される様で、別の言語を選択しても反映されない事例が出る様になりました。 違うブラウザを複数使って、一つのブラウザをGoogleアカウント専用のブラウザにして使う事も可能ですが、 URLの部分をいじって表示言語を指定する方法 を次に… hl (ホスト・ラングゲージ) Googleのサイト場合は URLに、 host languageのパラメー...

[拡張機能] chrome.runtime.sendMessage() の備忘録

イメージ
ここ最近 Chrome 拡張機能 を作って遊んでいますが、 Chrome 拡張機能 API の『 chrome.runtime.sendMessage() 』というAPIメソッドを使った拡張機能のコードをテスト中に、 Unchecked runtime.lastError: The message port closed before a response was received. というエラーが出て来たのですが、どう対処して良いのか当初はこのメッセージからは直ぐに理解できなかったので、ここに備忘録としてメモしておきます。 セキュリティー上の仕様 Chrome拡張機能ではセキュリティー上、各「ユーザーインターフェース (UI)」、 「バックグラウンドプロセス」とWebページ上に埋め込まれる「コンテント (Content) スクリプト」のプロセスは、各自、違うプロセスで処理されて、メモリ領域も分離されています。 なので、拡張機能のバックグラウンドページで宣言されている変数の値をポップアップを処理するスクリプトから 直接 アクセスする事は出来ません。 拡張機能のポップアップやオプションページのスクリプトの場合だと、バックグラウンドページに限っては拡張機能APIの『 chrome.runtime.getBackgroundPage() 』メソッドを使うとバックグラウンドページのインスタンスが取得出来るので、バックグラウンドページのプロセスで任意のメソッドを実行出来ます。 例として、ポップアップ又はオプションページのスクリプト内に: chrome.runtime.getBackgroundPage().console.log("ログメッセージ"); という行を加えると、「getBackgroundPage().」以降に続く「console.log(...)」がバックグラウンドページのプロセスで処理されるので、バックグラウンドページのコンソールのログに「ログメッセージ」と出力されます。 でも、このAPIはコンテクストスクリプトでは使う事が出来ない...

Google Chrome 拡張機能 APIs (Extension API)

イメージ
ここ最近 Google Chromeの拡張機能を作って遊んでいますが、JavaScripとCSSのある程度の知識があれば、テキスト・エディタとPNGを扱える画像編集ツールだけで拡張機能の開発が可能で、専用のコンパイラも必要ないので、そのはじめ方を簡単に書き留めておきます。 ブラウザ拡張機能 Webブラウザは、本来、インターネットを閲覧する為のアプリだったと思いますが、インターネットを閲覧しながら何かをするという使い方が一般的なのからでしょうか、最近の主流ブラウザには補助機能や便利ツールといった特定の機能を『 Add-on (アドオン) 』又は、『 Extension (エクステンション) 』と呼ばれるパッケージをダウンロードする事で新しい機能を追加出来る『 ブラウザ拡張機能 』があります。 このブラウザ拡張機能のパッケージは一般的なブラウザが標準で読み込める、HTML5、JavaScriptやCSSといったファイルで構成されているのが普通で、ブラウザがこれらのファイルを読み込んだ後、ファイルの内容に従って動作します。 でも、インターネットで使われる普通のJavaScriptだけではスクリプトが読み込まれているブラウザのページ以外のページにアクセスが出来ないなどと、いろいろな制限があるので、各ブラウザーがサポートするJavaScriptの拡張機能開発 APIs (Application Programming Interfaces) を使って拡張機能を開発するのが一般的です。 過去にはブラウザーごとに個別の拡張機能APIsが存在していた時期もありましたが、最近はGoogleのChromeブラウザの内部で使われているオープンソースの Chromium ブラウザーが「 Microsoft Edge 」、「 Opera 」といったブラウザーの内部でも使われているので、そういったブラウザーであれば、Google Chromeブラウザ用の拡張機能「 Chrome拡張機能 (Chrome Extension) 」をそのまま使える場合がほとんどみたいです。 以前、『 Plug-in (プラグイン) 』と呼ばれるパッケージもあったみ...