Google chrome extension 调用Chrome扩展后台/事件页面

Google chrome extension 调用Chrome扩展后台/事件页面,google-chrome-extension,Google Chrome Extension,我有一个扩展,可以成功读取当前网页,提取它需要的数据,并建立一个要执行的操作列表。 目前,它们呈现给用户,让用户点击链接执行。这些链接的缺点是,当它们单击链接时,新选项卡就会弹出,关闭扩展的弹出窗口,从而结束脚本执行。我也不想让用户无意识地点击,点击,点击——我想让它自动化 因此,我想将操作列表交给一些即使弹出窗口被关闭(当然,在用户完全了解的情况下)也可以继续执行的操作 我已经看到了关于活动和背景的页面——这两个页面中的任何一个都是正确的吗?还是我想做一些不可能的事 我尝试创建一个事件页面,我

我有一个扩展,可以成功读取当前网页,提取它需要的数据,并建立一个要执行的操作列表。
目前,它们呈现给用户,让用户点击链接执行。这些链接的缺点是,当它们单击链接时,新选项卡就会弹出,关闭扩展的弹出窗口,从而结束脚本执行。我也不想让用户无意识地点击,点击,点击——我想让它自动化

因此,我想将操作列表交给一些即使弹出窗口被关闭(当然,在用户完全了解的情况下)也可以继续执行的操作

我已经看到了关于活动和背景的页面——这两个页面中的任何一个都是正确的吗?还是我想做一些不可能的事

我尝试创建一个事件页面,我读到为了从内容脚本(popup.js-我认为这是正确的术语?)到该事件页面进行通信,我需要使用sendMessage()。但是,尽管发送了一条消息并在事件页面的脚本中包含onMessage.addListener,但对于提供给sendMessage的函数的响应,我只得到null。event addListener函数中的一个警报(确切地说,它没有触发)证明它永远不会到达那里。我猜这是因为没有加载事件页面——但调用sendMessage时不应该发生这种情况吗?我应该使用sendMessage的选项卡ID版本吗

因此,我的问题是:

  • 事件或背景页面是否是移交处理的正确方式,即使在弹出窗口关闭时也可以完成?如果没有,怎么做

  • 我需要如何编写事件页面(和/或sendMessage调用),以便在调用sendMessage时正确加载它,以确保它拾取消息?
    如果我可以再问几个关于链接的问题

  • 只有左键单击它们才能在弹出窗口中工作,尽管它们是完美的标准锚定标记。我怎样才能让他们像普通网页中的链接那样对右键点击做出响应

  • 是否可以强制从锚定标签在后台加载一个新标签,这将阻止我的扩展弹出窗口被关闭

  • 对不起,时间太长了

    以后请尽量不要捆绑问题

    1) 事件或背景页面是否是移交处理的正确方式,即使在弹出窗口关闭时也可以完成?如果没有,怎么做

    是的,后台/事件页面正是为了这个目的——后台处理

    2) 我需要如何编写事件页(和/或sendMessage调用),以便在调用sendMessage时正确加载它,以确保它拾取消息

    如果没有你的代码,你不可能知道你的代码出了什么问题(如果你想得到这方面的帮助,请提出一个新问题),但是为
    onMessage
    添加一个监听器就足够了

    后台页面总是被加载,事件页面(
    “persistent”:false)在空闲时被卸载,但Chrome会记住哪些事件分配了侦听器,如果该事件发生,Chrome会再次调用该页面

    chrome://extensions/
    可能会有帮助

    3) 只有左键单击它们才能在弹出窗口中工作,尽管它们是完美的标准锚定标记。我怎样才能让他们像普通网页中的链接那样对右键点击做出响应

    对此没有评论。我有理由相信,自定义单击处理程序将获得右键单击

    4) 是否可以强制从锚定标签在后台加载一个新标签,这将阻止我的扩展弹出窗口被关闭

    是的,如果您不使用
    进行导航。您可以使用
    chrome.tabs.create
    在单击处理程序中使用
    active:false