Javascript Firefox WebExtension-chrome.tabs.query

Javascript Firefox WebExtension-chrome.tabs.query,javascript,firefox,firefox-addon-webextensions,Javascript,Firefox,Firefox Addon Webextensions,当我这样做时: var a = 'moz-extension://c5b86449-4457-4a39-a758-958faf23fc72/popup.html' chrome.tabs.query({ url: a }, function(x){}); 我得到一个错误: Invalid match pattern: 'moz-extension://c5b86449-4457-4a39-a758-958faf23fc72/popup.html' SingleMatchPattern()

当我这样做时:

var a = 'moz-extension://c5b86449-4457-4a39-a758-958faf23fc72/popup.html'
chrome.tabs.query({ url: a }, function(x){});
我得到一个错误:

Invalid match pattern: 'moz-extension://c5b86449-4457-4a39-a758-958faf23fc72/popup.html'
  SingleMatchPattern()   MatchPattern.jsm:49
  this.MatchPattern()    MatchPattern.jsm:103
  self.tabs.query()      ext-tabs.js:556
  callAsyncFunction()    Extension.jsm:422
  inject/stub()          Schemas.jsm:1002
但是,这是我需要在
chrome.tabs.query
call中匹配的URL


有什么建议吗?

在Firefox v48中,错误消息不再出现,但是
moz扩展:…
协议还不受支持

chrome.tabs.query
x.length
中返回
0
如果像这样搜索
“url”:“moz扩展名:…”
,请参见示例:

chrome.tabs.query({ url: "moz-extension://..." }, function(x){
    console.log(x.length);
});
但是有另一种解决问题的方法,您可以通过所有选项卡进行搜索,而不使用“url:”参数,请参见以下示例:

获取选项卡数据: 用法:

//get id, url, title and other info from tab (or false)
console.log(getTab("view/page.html"));
//If openned refresh tab, if not create new tab
var id = openOrUpdateTab("view/page.html");

//get url from new or refreshed tab
console.log(url);
打开或刷新选项卡: 用法:

//get id, url, title and other info from tab (or false)
console.log(getTab("view/page.html"));
//If openned refresh tab, if not create new tab
var id = openOrUpdateTab("view/page.html");

//get url from new or refreshed tab
console.log(url);
重要提示 要使用这些函数,您需要将
“选项卡”
添加到
权限:
manifest.json
)中,如下所示:

    ...

    "permissions": [
        "<all_urls>",
        "tabs"
    ]
}
。。。
“权限”:[
"",
“选项卡”
]
}

不确定它是否相关,但建议在匹配模式中,
moz扩展
不是有效的方案谢谢,@JaromandaX。这可能就是问题所在
moz extensions
仍处于测试阶段。@GlenLittle我更新了我的答案,希望这对您有所帮助。@Guillermanascimento谢谢。我可能暂时无法确认答案,但看起来不错!