Chrome拡張機能とJavaScriptについて。
JavaScript始めたばかりの初心者です。
「アイコンがクリックされたとき、またはコンテキストメニューから選択されたときに、今開いているページを新しいタブで開く」
というものを作りたいのですが、上手くいきません。
tab.urlが使える条件と、tabs.createが使える条件が全く分かず、
なぜエラーが出るのかさっぱりです。
また、
chrome.tabs.getSelectedや、
chrome.browserAction.onClicked.addListenerについている
function(tab) {}の意味もよく分かりません。
解決方法と、
tab.url, tabs.createが使える条件の説明、function(tab) {}の意味の説明をしてくださると幸いです。
##問題のコード
###manifest.json
json
1{ 2 "manifest_version": 2, 3 "name": "test", 4 "description": "アイコンクリックかコンテキストメニューから選択で、現在のページを新しいタブで開く", 5 "version": "0.0", 6 "permissions": [ 7 "tabs", 8 "contextMenus" 9 ], 10 "browser_action": { 11 }, 12 "background": { 13 "scripts": ["script.js"] 14 } 15}
###script.js
js
1// 実行処理 2function run(){ 3 chrome.tabs.getSelected(null, function(tab) { 4 var url = tab.url; 5 tabs.create({ url: url }); 6 }); 7} 8 9// アイコンクリックから 10chrome.browserAction.onClicked.addListener(function(tab) { 11 run(); 12}); 13 14// コンテキストメニューから 15chrome.contextMenus.create({ 16 "title" : "実行する", 17 "type" : "normal", 18 "contexts" : ["all"], 19 "onclick" : function(tab){ 20 run(); 21 } 22});
##エラーメッセージ
script.jsの5行目「tabs.create({ url: url });」に対して
Error handling response: ReferenceError: tabs is not defined
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。