我对Google Chrome扩展程序很有趣,我只想知道如何将当前选项卡的URL存储在变量中?如何从Google Chrome扩展程序获取当前标签的网址?
回答
一位朋友回答我的问题。
首先,你要设置的权限选项卡API:
"permissions": [
"tabs"
]
以及存储的网址:
chrome.tabs.getSelected(null,function(tab) {
var tablink = tab.url;
});
你好这里是谷歌浏览器样品哪些电子邮件当前网站给朋友。背后的基本理念是你想要的...首先它提取页面的内容(不是为了表达你的意思)...之后它会得到URL(< - 很好的部分)
此外它是一个很好的工作代码示例,我比阅读文档更喜欢使用它。
可以在这里找到: Email this page
的问题是,chrome.tabs.getSelected是异步的。下面的代码通常不会按预期工作。
var tablink;
chrome.tabs.getSelected(null,function(tab) {
tablink = tab.url;
});
console.log(tablink);
解决的办法是包,你将使用代码:当它被写入到控制台,因为getSelected尚未调用的重置价值回调“tablink”的值仍然是undefined值在一个函数中,并由getSelected调用。通过这种方式,您可以保证始终有一个值集,因为您的代码在执行之前必须等待提供的值。
尝试类似:
chrome.tabs.getSelected(null, function(tab) {
myFunction(tab.url);
});
function myFunction(tablink) {
// do stuff here
console.log(tablink);
}
感谢您的代码,这为我工作,“标签”需要被添加到manifest.json文件“权限”的权限:[ “标签” ] – 2011-04-13 15:45:40
此外,它的作品就像一个魅力: [获取当前窗口的弹出式窗口(谷歌Chrome扩展)](http://stackoverflow.com/questions/3030738/getting-current-window-on-a-popup-google-chrome-extension) – chemark 2013-05-30 23:29:16
而且,如何获得所有打开的标签链接 – Enve 2013-07-27 18:04:51
更新:的chrome.tabs.getSelected()
方法现在已经过时。
获取当前选项卡的URL的推荐方式是使用chrome.tabs.query()
。
使用示例:
chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
var url = tabs[0].url;
});
这就需要你请求访问chrome.tabs
API在extension manifest:
"permissions": [ ...
"tabs"
]
需要注意的是你的“当前标签”的定义是非常重要的可能会因您的分机的需要而有所不同。
查询中的设置lastFocusedWindow: true
适合于当您要访问用户关注的窗口(通常是最上面的窗口)中的当前选项卡时。
设置currentWindow: true
允许您获取当前正在执行扩展代码的窗口中的当前选项卡。例如,如果您的扩展程序创建一个新的窗口/弹出窗口(更改焦点),但仍希望从运行扩展的窗口访问选项卡信息,这可能会很有用。
在本例中,我选择使用lastFocusedWindow: true
,因为Google会调出其中的currentWindow
may not always be present。
你可以自由地进一步细化使用任何这里定义的属性的标签查询:chrome.tabs.query
为什么网址总是未定义? – nnm 2014-05-31 12:27:17
如果URL未定义,请尝试从chrome重新加载您的扩展:// extensions 这将重新加载扩展的配置并应用新添加的“选项卡”权限。 – flashbackzoo 2016-04-16 23:34:15
网址未定义,因为http://stackoverflow.com/questions/28786723/why-doesnt-chrome-tabs-query-return-the-tabs-url-when-called-using-requirejs(回答:关闭您的开发工具窗口或更改为currentWindow而不是lastFocusedWindow) – kspearrin 2016-09-14 03:01:18
对于使用context menu api
那些,该文档是不如何获得标签的信息立即清除。
chrome.contextMenus.onClicked.addListener(function(info, tab) {
console.log(info);
return console.log(tab);
});
你必须检查this。
HTML
<button id="saveActionId"> Save </button>
的manifest.json
"permissions": [
"activeTab",
"tabs"
]
的JavaScript
以下的代码的活动窗口的所有URL保存到JSON对象作为按钮的一部分单击。
var saveActionButton = document.getElementById('saveActionId');
saveActionButton.addEventListener('click', function() {
myArray = [];
chrome.tabs.query({"currentWindow": true}, //{"windowId": targetWindow.id, "index": tabPosition});
function (array_of_Tabs) { //Tab tab
arrayLength = array_of_Tabs.length;
//alert(arrayLength);
for (var i = 0; i < arrayLength; i++) {
myArray.push(array_of_Tabs[i].url);
}
obj = JSON.parse(JSON.stringify(myArray));
});
}, false);
我的Chrome扩展程序用于在活动窗口中保存URL的方式是https://chrome.google.com/webstore/detail/tabstore-plugin/jngplpdonggccbjlmbphlbancacmpmpp – 2015-10-08 04:49:29
其他答案假设你想通过弹出或背景脚本知道它。
如果你想从内容脚本知道当前的URL ,标准JS方式适用:
window.location.toString()
您可以使用window.location
属性来访问URL的各个部分,如主机,协议或路径。
拇指向上,这是最简单的解决方案。 – dalvarezmartinez1 2016-08-22 20:38:11
很棒的回答。所有我想要的是'window.location.host'来查看是否在“stackoverflow.com”Im。 – Salyangoz 2017-09-07 06:10:36
- 1. 从Chrome扩展程序的Javascript中获取标签网址
- 2. Chrome扩展程序:如何从background.html获取当前网页网址
- 3. 使用Chrome扩展程序获取当前网址
- 4. Chrome扩展程序:获取当前网站名称
- 5. Chrome扩展程序:如何获取标签中的元素?
- 6. Chrome扩展程序:获取上次使用的标签
- 7. Chrome扩展程序外部网址
- 8. 如何检测标签更改在Google Chrome扩展程序上创建的网址或标签?
- 9. 如何获取Firebug扩展中的当前网址?
- 10. 通过Chrome扩展程序获取加载网址的来源?
- 11. 如何从浏览器获取当前标签网址?
- 12. Chrome扩展程序:获取当前页面的字符集
- 13. Google Chrome扩展程序(如Aviary)如何捕获屏幕(网页)?
- 14. 如何从扩展中获取当前chrome选项卡的AST?
- 15. 如何从扩展中获取当前版本的Chrome?
- 16. Chrome扩展程序:获取活动标签的源代码
- 17. 使用Chrome扩展程序中的网址获取页面的标题
- 18. 从Firefox扩展中获取Firefox的标签网址
- 19. 如何获取Google Chrome扩展程序的DOM窗口参考?
- 20. 带有标签的Chrome扩展程序
- 21. Chrome扩展程序获取当前主题背景
- 22. 如何使用Google扩展程序查找网址的div标签
- 23. Chrome扩展程序导航到网址
- 24. Chrome扩展程序跳转到网址
- 25. 从铬扩展中获取当前网址
- 26. 在Chrome扩展程序中访问新书签的网址
- 27. 当扩展程序打开时,从Chrome中的当前选项卡获取URL?
- 28. 如何获取已删除的标签Chrome扩展程序中的网址开发
- 29. 如何从Google Chrome扩展程序重新呈现网页?
- 30. 从Google Chrome扩展程序中抓取网页
代码的第二部分是针对弹出文件的情况 – Axiol 2009-12-30 11:38:54
它仅仅用于弹出(页面动作,浏览器动作)的原因是因为你发送了一个“null”成第一个参数。 http://code.google.com/chrome/extensions/tabs.html#method-getSelected 文档状态第一个参数是windowId,如果你想在选项或背景页面中使用它,你需要要放入窗口ID,或者您将分别获取当前选项卡的未定义选项。 – 2009-12-30 17:06:00
是的它的工作原理,但不知道为什么chrome.tabs.getSelected方法不能在参考文档中找到。 – swimmingfisher 2012-04-25 03:21:56