【问题标题】:How to Pick up Link(URL) using a Google Chrome Extension如何使用 Google Chrome 扩展程序获取链接(URL)
【发布时间】:2013-06-04 19:18:44
【问题描述】:

我想使用 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"
]
}

【问题讨论】:

  • 您的清单文件在哪里? var url = document.URL; 将永远不会获取所需的 URL,如果它位于内容脚本以外的任何其他页面中
  • 我也尝试了 tab.url 方法,但它也不起作用。我想在按下扩展按钮/图标之前获取我当前所在页面的 URL。

标签: javascript html google-chrome google-chrome-extension


【解决方案1】:

如果您希望在按下扩展按钮/图标之前获取当前所在页面的 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
    }
});

它可以消除上述工作。

P.S: var elem = document.getElementById("myinputbox"); 由于缺少元素,上述代码将永远无法在后台页面中运行。

【讨论】:

  • 是 var a = console.log(tabs[tab].url);正确。我想将链接存储在一个变量中,并显示在我点击图标时打开的网页上。
  • @KshitijMarwah var _somename = tabs[tab].url; 是正确的语法,如果您正在寻找 url 的存储。
  • 先生,那么我如何在您编写的代码之后存储当前的选项卡 url,因为如何保存 console.log?
  • 你能否详细解释一下如何存储 URL。我试过你的代码,但它没有得到我想要的结果。
  • @KshitijMarwah:您的 java 脚本代码将永远无法工作,因为您正在从不存在元素的页面进行 DOM 查询。
猜你喜欢
  • 1970-01-01
  • 2021-03-12
  • 1970-01-01
  • 2011-02-17
  • 2012-04-12
  • 2011-12-17
  • 1970-01-01
  • 1970-01-01
  • 2011-09-21
相关资源
最近更新 更多