Not*_*tGI 3 javascript jquery google-chrome communication google-chrome-extension
我正忙着在谷歌Chrome扩展程序内部进行通信,并使用以下指南:https://developer.chrome.com/extensions/messaging
它曾经工作,但我遇到了一个错误:
响应tabs.query时出错:TypeError:无法读取未定义的属性"id"
我比较了我的代码和谷歌Chrome代码,我似乎无法找到我的代码产生错误的原因:
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[1].id, {fen: request.needMove}, function(response) {
//console.log(response.farewell);
});
});
Run Code Online (Sandbox Code Playgroud)
这是我发送到的地方:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log("recv FEN : " + FEN);
FEN = request.fen;
setCookie("FEN_SET", "true" , 1);
setFEN(FEN);
});
Run Code Online (Sandbox Code Playgroud)
我无法解决这个错误,无论我尝试它保持不变."无法读取未定义的属性"暗示"标签"是未定义的,据我所知,但我不明白为什么它在Google示例中有效,而在此处则不然.
另一个问:
如果我试图将它发送到标签[1]这是否意味着它是第二个位置的标签,还是我解释错了?
Xan*_*Xan 10
tabs 是通过过滤器的所有选项卡(无论位置)的列表.
您的查询是{active: true, currentWindow: true},通常它应该只有1个选项卡(因为最多有1个当前窗口,正好有1个活动选项卡).
所以你需要第一个元素,即tabs[0].
tabs[1] 将始终使用此查询未定义.
情况下,当tabs将虚空曾经是极其罕见的(铬在后台运行,没有窗户打开).
但是,通过最近的更改,API将不会返回开发工具选项卡.因此,如果您正在调试扩展,并且Dev Tools窗口处于打开状态且已聚焦,则该数组将为空.你应该检查一下.
| 归档时间: |
|
| 查看次数: |
2043 次 |
| 最近记录: |