質問: プログラミング初心者です。 現在、Chromeの拡張機能開発を行っています。 Chromeの拡張機能をクリックするだけで、閲覧中のWEBサイトのURLを取得し、別タブでWEBサイトの表示速度が測定できる「Google PageSpeed Insights」に取得したURLが自動的に反映されるプログラムを制作しています。 完成イメージとしては、閲覧中のサイト(teratail)でChromeの拡張機能をクリックすることで、 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/64f5eee64578e11ae4656f94ef4b0fb1.png) 「Google PageSpeed Insights」のサイト内にある、URL入力欄に取得したURLが自動的に反映されるプログラムです。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/cd890c0f3ee590efd85946663ce2ad3e.png) ### 発生している問題・エラーメッセージ javascriptの「location.href」を活用して、閲覧中のサイトのURLを取得しようとしたのですが、うまくいきません。 閲覧中のサイトのURLを「https://○○○」の形で取得できず、 「chrome-extension://afodfheljgloicekcifhieopgnbpibjm/_generated_background_page.html」の形で取得してしまいます。 ### 該当のソースコード **manifetst.json** ``` { "manifest_version": 2, "name": "page speed checker", "version": "2.0", "description": "閲覧中のサイトの表示速度を測定します", "icons": { "128": "page.png" }, "browser_action": { "default_title": "page speed checker", "default_icon": "page.png" }, "background": { "scripts": ["contents.js"] }, "permissions": [ "tabs", "http://*/*", "https://*/*" ] } ``` **contents.js** ``` chrome.browserAction.onClicked.addListener(function() { void(window.open('https://developers.google.com/speed/pagespeed/insights/?url='+location.href)); }); ``` 原因がわかる方がいましたら、教えていただきたいです。 javascriptの「location.href」を使わない方が簡単にできるなどのご意見もありましたら、 お伝えいただけると嬉しいです。 何卒よろしくお願いいたします。
回答: 「Chrome Extension 表示中 URL」とGoogleで検索を行ったら、下記のページが出てきました。 [ChromeExtension] 表示しているタブのURLを取得するサンプル いろいろと情報を集める力も開発には重要なスキルとなると思います。 自分もまだまだですが、ぜひ頑張ってください。