Firefox插件:如何将当前网址发送到backgroundscript

问题描述

我正在编写一个firefox插件,当按下工具栏上的插件图标时,它将记录当前URL。

按下按钮时,后台脚本将调用本机应用程序。该本地应用程序应将当前URL写入txt文件。此时,我可以在按下插件按钮时编写文本文件。我能够将在background.js中创建的变量的内容写入文本文件。但是我无法将当前URL传递给后台脚本。

插件基于Mozilla的示例插件https://github.com/mdn/webextensions-examples/tree/master/native-messaging

使用var url = window.location.href;时,我会获得已加载脚本的URL /位置。

问题:如何将当前URL传递给background.js,以便将URL写入文本文件

以下是脚本: 代码background.js:

var url = window.location.href;

/*
On startup,connect to the "ping_pong" app.
*/
var port = browser.runtime.connectNative("ping_pong");

/*
Listen for messages from the app.
*/
port.onMessage.addListener((response) => {
  console.log("Received: " + response);
});

/*
On a click on the browser action,send the app a message.
*/
browser.browserAction.onClicked.addListener(() => {
  console.log("Console logger");
  port.postMessage(url);
});

Code Manifest.json

{

  "description": "ping_pong","manifest_version": 2,"name": "Native messaging start Python","version": "1.0","icons": {
    "48": "icons/message.svg"
  },"browser_specific_settings": {
    "gecko": {
      "id": "ping_pong@example.org","strict_min_version": "50.0"
    }
  },"background": {
    "scripts": ["background.js"]
  },"browser_action": {
    "default_icon": "icons/message.svg"
  },"permissions": ["nativeMessaging"]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...