如何在Chrome扩展程序中的后台消息侦听器中检索活动选项卡?

阿什拉夫·巴希尔(Ashraf Bashir)

我正在使用以下代码(在background.js中)来获取活动标签

chrome.tabs.query({active: true, lastFocusedWindow: true}, function(tabs) {
    console.log("active tab retrieved : " + tabs[0].id);
});

除一种情况外,此方法非常有效:当这段代码位于消息传递侦听器内部时。例如下一个场景:

在background.js中

chrome.runtime.onMessage.addListener(
    function(message, sender, sendResponse) { 
        console.log("message received");
        chrome.tabs.query({active: true, lastFocusedWindow: true}, function(tabs) {
            console.log("active tab retrieved : " + tabs[0].id);
        });
    }
);

*在content_script.js中*

chrome.runtime.sendMessage({}, function(response) {});

我在控制台中只有以下内容

收到消息

而且我没有第二次登录控制台。

为什么会发生这种情况以及如何解决?

加尔帕克

您的代码中有一个未封闭的括号,这会引发异常并中止执行。像这样更正它:

chrome.runtime.onMessage.addListener(
    function(message, sender, sendResponse) { 
        console.log("message received");
        chrome.tabs.query({active: true, lastFocusedWindow: true}, function(tabs) {
            console.log("active tab retrieved : " + tabs[0].id);
        });   // <-- add `);`
    }
);

就是说,如果您只想获取发送消息的选项卡,则要容易得多:

sender.tab.id

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Chrome扩展程序-executeScript不在活动选项卡中

Android 活动片段侦听器无法单击 tablayout 中的中间选项卡

Chrome 扩展程序化 CSS 注入到活动选项卡中的错误

Chrome扩展程序后台消息侦听器启动两次

Chrome扩展程序:获取活动选项卡的源代码

Chrome扩展程序:Javascript注入到活动选项卡

如何使用JavaScript在Chrome扩展程序中获取当前选项卡的URL

如何将 JavaScript 发送到 Chrome 扩展程序中的特定选项卡?

如何在Angular Material中获取活动选项卡

如何在PyCharm的活动选项卡中运行代码?

如何在消息侦听器中更新ListView?

如何在引导程序中更改活动选项卡的颜色

如何在 Eclipse 的选项卡列表中更改当前活动选项卡的背景?

如何在选项卡和分页器活动中对齐父底部

如何在QTabWidget Qt中扩展选项卡

如何在 chome 扩展中的选项卡之间发送选项卡数据?

如何在特定选项卡、选项卡式活动、Kotlin 中隐藏菜单项

Chrome扩展程序:即使停止播放器(声音源),选项卡查询中的可听属性也返回true

如何在Flutter Web应用程序中重新加载浏览器选项卡

浏览器选项卡处于非活动状态时,如何在REACT应用程序中播放音频?

带有鼠标侦听器的 JTabbedPane 选项卡

Chrome扩展程序中的所有选项卡中设置切换开关状态

如何在开发(解包)时在所有选项卡上提供 Chrome 扩展程序?

Chrome 扩展程序:如何通过单击 html 弹出窗口中的按钮在新选项卡中打开指定链接?

侦听选项卡控件中的选项卡单击

尝试创建Chrome扩展程序,该扩展程序将从浏览器选项卡A复制数据并将其填写在浏览器选项卡B的表单中

如何将选项卡侦听器设置为ActionBar

JavaScript在非活动的Android Chrome选项卡中暂停

Android如何在使用惰性列表查看器时在所有活动中显示选项卡