2

現在のタブが同じ Web サイトでない場合に Web サイトを開く chrome 拡張機能を作成しているので、次のようにすべてのタブを取得できました。

chrome.tabs.getAllInWindow(null, allTabs);

そして、それを表示する関数を書きました:

   function allTabs(tabs) {
        var tabsURLS = '';
        for (var i = 0; i < tabs.length; i++) {
            tabsURLS = tabs[i].url + '\n';
        }
        alert(tabsURLS);
    }

しかし、私は現在のページのURLを取得する必要があるので、これで現在のタブを取得します:

var object=chrome.tabs.getCurrent(function(){;});

idしかし、またはのようなページのプロパティにアクセスできずurl、このアラートは「未定義」と表示されます...

alert(object);

このアラートはまったく機能しませんが

alert(object.id);

最後に、このページchrome.tabsを読みましたが、この行を読んだときにショックを受けました

getCurrent
chrome.tabs.getCurrent(function callback)
このスクリプト呼び出しが行われているタブを取得します。非タブ コンテキスト (たとえば、バックグラウンド ページまたはポップアップ ビュー) から呼び出された場合は、未定義の可能性があります。

そのため、Chrome拡張機能から現在開いているタブを取得する解決策はないと思います...

4

4 に答える 4

5

代わりに getSelected を使用する必要があると思います

<html>
<head>
<script>

    chrome.tabs.getSelected(null, function(tab) {
        var tabId = tab.id;
        var tabUrl = tab.url;

        alert(tabUrl);
    });

</script>
</head>
于 2013-07-20T10:52:09.243 に答える
-1

タブ情報にアクセスするには、manifest.json で正しいアクセス許可を設定してください。

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

その後、次を使用して URL を特定できます。

chrome.tabs.getSelected(null, function (tab) {
    alert(tab.url);
});
于 2014-04-29T17:35:45.670 に答える