如何在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条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

window.onbeforeunload侦听器未在Firefox中的选项卡关闭上触发

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

是否可以通过chrome扩展与非活动选项卡中的内容元素进行交互?

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何在Chrome扩展程序中动态运行后台脚本?

来自分类Dev

如何在Chrome扩展程序中动态运行后台脚本?

来自分类Dev

Chrome扩展程序仅在当前选项卡中更改用户代理

来自分类Dev

chrome扩展程序中的选项卡更改时的页面内容

来自分类Dev

Chrome 扩展程序 - 在当前选项卡的 popup.html 中激活脚本

来自分类Dev

如何在Spring Jms消息侦听器中识别消息队列名称

来自分类Dev

突出显示引导程序 3 中的活动选项卡

来自分类Dev

如何在 Scala.js 中的单击事件侦听器中检索标签名称?

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

    window.onbeforeunload侦听器未在Firefox中的选项卡关闭上触发

  5. 5

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

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

    是否可以通过chrome扩展与非活动选项卡中的内容元素进行交互?

  12. 12

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

  13. 13

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

  14. 14

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

  15. 15

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

  16. 16

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

  17. 17

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

  18. 18

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

  19. 19

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

  20. 20

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

  21. 21

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

  22. 22

    如何在Chrome扩展程序中动态运行后台脚本?

  23. 23

    如何在Chrome扩展程序中动态运行后台脚本?

  24. 24

    Chrome扩展程序仅在当前选项卡中更改用户代理

  25. 25

    chrome扩展程序中的选项卡更改时的页面内容

  26. 26

    Chrome 扩展程序 - 在当前选项卡的 popup.html 中激活脚本

  27. 27

    如何在Spring Jms消息侦听器中识别消息队列名称

  28. 28

    突出显示引导程序 3 中的活动选项卡

  29. 29

    如何在 Scala.js 中的单击事件侦听器中检索标签名称?

热门标签

归档