質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

タブ

コンテンツの上下左右に参照用のメニューを設けることで、複数の要素やページの表示を可能にするユーザーインターフェイスパターンのこと。メニューをクリックすると、一つの要素が可視化され、他の要素は見えなくなる。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Chrome extension

Chrome拡張機能

Q&A

解決済

1回答

1770閲覧

tab.urlとtabs.createの併用?など(Chrome拡張機能)

koiru

総合スコア4

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

タブ

コンテンツの上下左右に参照用のメニューを設けることで、複数の要素やページの表示を可能にするユーザーインターフェイスパターンのこと。メニューをクリックすると、一つの要素が可視化され、他の要素は見えなくなる。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Chrome extension

Chrome拡張機能

0グッド

0クリップ

投稿2020/06/09 12:50

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

tabs.createをchrome.tabs.createにすると解決しました。

js

1chrome.tabs.create({ url: url });

function(tab) {}の意味については、また別の質問でしたいと思います。

投稿2020/06/09 12:56

koiru

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問