0

Google Chrome 拡張機能を使用して Web ページのリンク (URL) を取得したいと考えていました。リンクを取得する際の問題は、HTML ページで必要なものを実装できるが、拡張機能が同じコードを実装していないことです。同じコードが HTML Web ページでは機能しますが、Google Chrome 拡張機能では機能しませんが、どちらも HTML ページでコード化されていますが、コードの実装を妨げているいくつかの制限がある可能性があります。

これは私の HTML ページです。

<html>
<head>
</head>
<body>
    <form>
        <h1> 
            LinkLet
        </h1>
        Email the Link <input type="text" name="myinputbox" class="form1"          id="myinputbox"><br>
    </form> 
</body>

これは、リンクを選択するための私の JS ページです。このページは、ブラウザー上で独立して実行されている間は機能しますが、Chrome 拡張機能にバンドルされている場合は機能しません。

chrome.browserAction.onClicked.addListener(function(activeTab)
{
var newURL = "Link.html";
chrome.tabs.create({url: newURL});
});
var url = document.URL;
var elem = document.getElementById("myinputbox");
elem.value = url;

そして私のマニフェストファイルは

{
"background" :{
"scripts" : ["background.js"]
},
"manifest_version" :2,
"name": "My Extension",
"version": "1.0",
"description": "Opens up a local webpage",
"icons": { "1": "1.png" },

"browser_action": {
"default_title": "Hi123",
"default_icon": "1.png"
},
"permissions": [
"tabs"
]
}
4

1 に答える 1

0

拡張ボタン/アイコンを押す前に、現在表示しているページの URL を取得したい場合。

次のコードを使用します。

chrome.tabs.query({
    "active": true,//fetch active tabs
    "currentWindow": true,//fetch tabs in current window
    "status": "complete",//fetch completely loaded windows
    "windowType": "normal"//fetch normal windows
}, function (tabs) {
    for (tab in tabs) {
        console.log(tabs[tab].url);// Use this URL as needed
    }
});

上記の手間を省くことができます。

PS: var elem = document.getElementById("myinputbox");要素が欠落しているため、上記のコードはバックグラウンド ページでは機能しません。

于 2013-06-04T11:18:44.540 に答える