Javascript Chrome扩展-在视图和扩展之间共享数据

Javascript Chrome扩展-在视图和扩展之间共享数据,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在为debrid构建一个chrome扩展,并在我的raspberry pi(运行Kodi)上传输一个链接 到目前为止,它运行良好。我可以提供一个链接: 在Kodi上进行了清创+流式处理 我想让它更容易使用 我没有将链接粘贴到应用程序中,而是制作了一个小脚本来搜索给定类型的页面,如果链接可以通过Realdebrid进行清理,那么脚本会添加一个按钮来直接对其进行流式处理: 这里的问题是: 当用户单击按钮时,我如何将链接传递到分机?我希望它在我的扩展中,因为我可以将链接显示到历史中 我试过这样

我正在为debrid构建一个chrome扩展,并在我的raspberry pi(运行Kodi)上传输一个链接

到目前为止,它运行良好。我可以提供一个链接:

在Kodi上进行了清创+流式处理

我想让它更容易使用

我没有将链接粘贴到应用程序中,而是制作了一个小脚本来搜索给定类型的页面,如果链接可以通过Realdebrid进行清理,那么脚本会添加一个按钮来直接对其进行流式处理:

这里的问题是:
当用户单击按钮时,我如何将链接传递到分机?我希望它在我的扩展中,因为我可以将链接显示到历史中

我试过这样的方法:

  • 从这个角度来看:

  • 从分机:

但它不起作用

我想我应该用,但我不明白怎么用

这是一个开源的项目,你可以在上面找到。 因为它还没有工作,所以你不会在之前的两张图片中找到我共享的代码。它就在我的电脑上,不是推的

任何帮助都将不胜感激

谢谢

编辑1:

当我点击页面中的按钮时,我得到了这个错误:

这就引出了这条线:

编辑2:


如果我在点击按钮的同时保持应用程序打开,它就会工作。但是我不想启动应用程序,当然,目标是只点击按钮。

弹出脚本在用户通过点击应用程序图标打开应用程序时加载。在此之前,您无法使用它。因此,您会收到此错误,因为当您发送请求时,侦听器应该可用,而在您的情况下,侦听器不在那里

现在,实现这一点的最简单方法是将请求从内容脚本发送到后台页面,即使在应用程序未打开时,后台页面也可用

  • 使用内容脚本注入按钮,并在单击按钮的事件时向后台页面(称为事件页面)发送消息

  • 在后台页面中添加一个事件侦听器,它将侦听来自内容脚本的请求,并将链接存储在本地存储器中

  • 当你的应用程序打开时,只需从本地存储加载链接,并在历史记录中显示你的链接


  • 我希望这能有所帮助。

    我认为“request:any”在ES6中不是正确的语法。您的transpiler在这一行附近一定有语法错误。@GaurangTandon我在编译时没有错误。有关错误的更多信息,请参阅我的编辑1。您似乎没有从弹出窗口(扩展名)中获得响应,这意味着
    sendResponse
    的if条件很可能是
    false
    。尝试将
    console.log(request)
    放在
    if块之前,查看您收到的请求。@GaurangTandon aaah您是对的!如果我保持应用程序打开,并单击按钮,则会得到答案:)。CF编辑2。现在,我如何才能不必先启动应用程序?请不要发布代码截图。将代码和错误以文本形式发布。谢谢您的回答。这是最简单的方法吗?因为我现在(学校)很忙,所以我会在这个星期或下星期试试。我会回来告诉你:)再次谢谢!实际上有个问题。很酷,我可以存储与本地存储的链接。。。但仍然如此。如何将链接发送到Kodi?我必须打开应用程序并从历史中启动它?我可以打开并粘贴它。当
    弹出窗口(应用程序)
    打开时,你正在做的事情可以在它未打开时通过使用背景页来完成。我在您的代码中看到,当url粘贴到应用程序中时,您首先从
    real debrid
    获取链接,然后将链接发送到
    kodi
    。从内容脚本获取此链接时,重复相同的过程。最主要的是在不打开应用程序的情况下获取链接,这就是您将从内容脚本中获得的内容。