获取选项卡ID或URL并使用getCurrent显示它

时间:2011-01-29 10:34:20

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

以下是我的内容script.js和background.html以及错误

contentscript.js

chrome.extension.sendRequest({"type":""}); 

background.html

<script type="text/javascript" charset="utf-8">

  chrome.extension.onRequest.addListener(
    function(request, sender, sendResponse) {
           chrome.tabs.getCurrent(function(tab){var urls = tab.url;console.log(urls);});  

  });     

</script> 

background.html控制台上的错误消息

  

background.html:7未捕获的TypeError:无法读取未定义的属性“url”

这应该是一个简单的改变,但我被卡住了。

3 个答案:

答案 0 :(得分:5)

您无法调用get getCurrent,因为您没有从标签上下文中调用它。文档说你也不能使用它。如果您的扩展程序创建了标签,则只能使用此选项。您想获取其标签ID以使用扩展名message passing。背景页面没有标签。

  

获取此脚本调用的选项卡。如果是,可能是未定义的   从非标签上下文调用(,例如:后台页面或弹出视图)。

如果您想获取当前标签ID,可以使用chrome.tabs.getSelected来获取其网址和ID。

答案 1 :(得分:1)

嗯,它确实不起作用。我想听听自己的原因,但同时这里有一个解决方法:

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
   console.log(sender.tab.url);
});  

答案 2 :(得分:1)

这可以尝试

         0..*     0..*
| Data | <>―――――――> | Item |