現在開いているタブのURLを取得する

Javascript

manifest.json

{
    "manifest_version": 3,
    "name": "tab info",
    "version": "1.0",
    "description": "現在のタブ情報を取得して<textarea id=results>に表示します",

    "icons": {
        "16": "icon.png"
    },

    "action": {
        "default_icon": "popup.png",
        "default_popup": "popup.html"
    },

    "permissions": [
        "tabs"
    ]
}

popup.html

<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charaset="utf-8">
        <title>extension</title>
        <style>
            #results {
                height: 70px;
                width: 300px;
                font-size: 12px;
            }
        </style>
    </head>
    <body>
        <textarea id="results"></textarea>
        <!-- manifest.jsonでJSファイルを読み込まなくてもscriptタグを書けば同じ挙動になる -->
        <script src="popup.js"></script>
    </body>
</html>

popup.js

'user strict' // エラーチェック
{
    // 以下の2つの引数を書くことで「現在のタブ情報のみ」を取得できるが、
    // これら2つの引数を書かなければ、「全てのタブ情報」を取得することができる
    // lastFocusedWindow:true -> 最後にフォーカスが当たったウィンドウを選択
    // active:true -> アクティブなタブを選択

    // 第2引数tabsの中に取得したタブ情報が入っているので、tabs.length分くりかえす
    chrome.tabs.query({active: true, lastFocusedWindow: true}, tabs => {

        const results = document.getElementById('results');
        const urls = [];

        for(let i=0; i<tabs.length; i++){
            console.log(tabs[i].title);
            urls.push(tabs[i].url);
        }

        results.value = urls.join('\n');
        results.select();

    })
}
BACK