0

我想使用谷歌浏览器扩展程序获取网页的链接(URL)。获取链接的问题在于HTML页面可以实现我想要的但扩展没有实现相同的代码。我的意思是相同的代码适用于HTML网页,但不适用于谷歌浏览器扩展程序尽管两者都用HTML页面编码,但可能存在一些限制,可能会阻止我实现代码。如何使用Google Chrome扩展程序获取链接(URL)

这是我的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页面,选择link.This页面正在同时在浏览器独立运行,但在与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" 
] 
} 
+0

你的清单文件在哪里? 'var url = document.URL;'如果它在除内容脚本以外的任何其他页面中,将永远不会获取所需的URL – Sudarshan

+0

我也尝试过tab.url方法,但它也无法正常工作。我想要拾取页面的URL我在此之前按下扩展按钮/图标。 –

回答

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 
    } 
}); 

它可以消除以上的努力。

P.S:var elem = document.getElementById("myinputbox");上面的代码将永远不会在后台页面工作,因为缺少元素。

+0

是var a = console.log(tabs [tab] .url); correct.i想将链接存储在一个变量中,并在我点击图标时打开的网页上显示。 –

+0

@KshitijMarwah'var _somename = tabs [tab] .url;'是正确的语法,如果你正在寻找的URL存储。 – Sudarshan

+0

先生,那么我怎么能存储当前标签网址后,你已经写的代码如何可以保存console.log? –

相关问题