4

ユーザーが入力したキーワードに応じて、現在のタブを browser_action Chrome 拡張機能の URL に移動しようとしています。これを行う最善の方法は何ですか?

最初にJavaScriptで簡単なフォームを試してみましたが、executeScriptを使用していなかったため、JavaScriptが現在のタブにwindow.location.hrefを設定していないことに気付きました。

これまでのところ、私が見つけた最良の方法は、executeScript を使用することです。

chrome.tabs.executeScript(null, {code:"window.location.href = '" + url + "';"});

これには、マニフェストへのアクセス許可の追加も含まれます。

"permissions": [
  "tabs",
  "http://*/",
  "https://*/"
],

問題はそれです:

  1. このアプローチは、newtab ページでは機能しません。(「chrome://*/」を追加すると、拡張機能が壊れてインストールされなくなります)

  2. プロトコルの種類ごとに権限を明示的に設定する必要があります。そうしないと、一部の種類のページで拡張機能が機能しません。

browser_actionポップアップからChromeタブが開いているタブを特定のページにナビゲートするより堅牢な方法はありますか?

4

1 に答える 1

6

コンテンツ スクリプトやホスト権限は必要ありません。使用するだけですchrome.tabs.updatetabs許可は必要ありません):

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.update(tab.id, {
        url: url
    });
});
于 2013-07-24T14:01:22.967 に答える