Javascript 为什么我的用于获取当前url的Chrome扩展的脚本不起作用?
我从Stack Overflow中获得了一个脚本,用于获取当前的Chrome选项卡,但每次我尝试运行它时,Google Chrome中都会出现以下错误:Javascript 为什么我的用于获取当前url的Chrome扩展的脚本不起作用?,javascript,google-chrome-extension,permissions,Javascript,Google Chrome Extension,Permissions,我从Stack Overflow中获得了一个脚本,用于获取当前的Chrome选项卡,但每次我尝试运行它时,Google Chrome中都会出现以下错误: Uncaught TypeError: Cannot read property 'query' of undefined Context https://www.youtube.com/ Stack Trace **chrome.tabs.query({active: true, currentWindow: true}, tabs =&
Uncaught TypeError: Cannot read property 'query' of undefined
Context
https://www.youtube.com/
Stack Trace
**chrome.tabs.query({active: true, currentWindow: true}, tabs => {**
let url = tabs[0].url;
// use `url` here inside the callback because it's asynchronous!
});
粗体代码是错误中突出显示的代码。我试图用lastFocusedWindow
替换currentWindow
,但没有任何效果。权限都是正确的,我甚至添加了我不需要的额外权限,如下所示:
"permissions": [
"tabs",
"<all_urls>",
"activeTab" ]
“权限”:[
“标签”,
"",
“活动选项卡”]
我的脚本只需要
选项卡
和
,但我有活动选项卡
,以防万一。这里的问题是什么?我如何解决它?有两种方法
getCurrent()
。更多详细信息请参见您应该在哪个页面上执行脚本->
chrome.tabs.getCurrent(函数回调)错误消息显示
chrome.tabs
未定义,只有在内容脚本或普通页面脚本中尝试使用它时才会发生这种情况。内容脚本不能使用大多数ChromeAPI。您不需要chrome.tabs来获取内容脚本中的当前URL:只需使用location.href
。每个匹配的选项卡都运行内容脚本的一个实例,因此不要将其与在单独隐藏的背景页中运行的背景脚本混淆。@wOxxOm如何在脚本中实现location.href
?这是一个标准功能,无需实现,只需使用它,示例很容易找到。@wOxxOm很抱歉,当您使用Google location.href时,我使用了非常复杂的Google关键字。这非常简单。内容脚本不能使用chrome.tabs或chrome.browserAction,请参阅。