52

chrome.tabs権限ブロックにタブを設定したにもかかわらず、未定義を返します。

"permissions": [
    "tabs",
    "http://*/*",
    "https://*/*"
],
"content_scripts": [
    {
        "matches": [
            "http://*/*",
            "https://*/*"
        ],
        "js": [
            "js/myScript.js"
        ],
        "all_frames": true
    }
],

しかし、myScript.js では、以下は undefined を返します。

chrome.tabs   
4

4 に答える 4

88

コンテンツ スクリプトには独自の制限があるため、

chrome.tabsバックグラウンド スクリプトとポップアップ スクリプトでのみ使用できます。

使用したい場合はchrome.tabs、 content_script からバックグラウンド スクリプトにメッセージを渡し、 で遊んでchrome.tabsください。

于 2013-02-23T18:39:25.220 に答える
1

https://developer.chrome.com/extensions/tabs#method-getSelectedショー

getSelected

chrome.tabs.getSelected(integer windowId, function callback)
Chrome 33 以降非推奨。tabs.query {active: true} を使用してください。
指定されたウィンドウで選択されているタブを取得します。

たぶん、このように popup.js でchrome.tabs.queryを使用する必要があります

chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
    console.log(tabs[0].url);
});

、拡張機能をリロードし、拡張機能の inspect 要素で結果を確認します。

結果画像

コード画像

https://developer.chrome.com/extensions/tabs#type-Tabは、タブが表示している URLを示してい ます。このプロパティは、拡張機能のマニフェストに「タブ」権限が含まれている場合にのみ存在します。(誰かが忘れたことを思い出させるために。テストしただけで忘れていました。)

于 2018-02-09T17:53:30.813 に答える
-3

この回答も確認して くださいhttps://stackoverflow.com/a/6718277/449345

chrome.tabs.getSelected(null, function(tab){
    console.log(tab);
});
于 2015-11-09T10:49:35.793 に答える