0

我想使用Google Chrome 扩展程序获取网页的链接(URL)。获取链接的问题是 HTML 页面可以实现我想要的,但扩展程序没有实现相同的代码。我的意思是相同的代码适用于 HTML 网页,但不适用于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 回答