Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在firefox扩展页面中提交表单_Javascript_Node.js_Firefox Addon_Firefox Addon Webextensions - Fatal编程技术网

Javascript 在firefox扩展页面中提交表单

Javascript 在firefox扩展页面中提交表单,javascript,node.js,firefox-addon,firefox-addon-webextensions,Javascript,Node.js,Firefox Addon,Firefox Addon Webextensions,我正在开发一个简单的Firefox扩展。我有一个页面,其中包含一个输入用户名的表单。当用户单击浏览器操作按钮时,该页面将打开。该文件中有一个javascript文件,我想从中将该名称发送到后端节点.Js服务器。但我不知道如何执行表单提交,我尝试了不同的方法,但没有任何效果。 这是我的manifest.json文件: { "manifest_version": 2, "name": "Ext", "version": "1.0", "description": "My Experi

我正在开发一个简单的Firefox扩展。我有一个页面,其中包含一个输入用户名的表单。当用户单击浏览器操作按钮时,该页面将打开。该文件中有一个javascript文件,我想从中将该名称发送到后端节点.Js服务器。但我不知道如何执行表单提交,我尝试了不同的方法,但没有任何效果。
这是我的
manifest.json
文件:

{
  "manifest_version": 2,
  "name": "Ext",
  "version": "1.0",
  "description": "My Experiments.",
  "icons": {
    "48": "icons/ff.jpg"
  },
  "permissions": [
    "webRequest",
    "storage",
    "alarms",
    "tabs",
    "notifications",
    "activeTab",
    "<all_urls>"
  ],
  "background": {
    "scripts": [
      "background-script.js"
    ]
  },
  "browser_action": {
    "default_icon": "icons/toggle-off.png",
    "default_title": "EXT"
  }

}
这是我的
index.js
文件,我想从中提交表格

document.addEventListener("click", (e) => {
    console.log(e.target)
    if (e.target.classList.contains("button-blue")) {
    console.log("sss")
    e.preventDefault();
    var xhr = new XMLHttpRequest();
    let savedItem = browser.storage.local.get("ip");
    savedItem.then(function (item) {
        document.getElementById('ip').value = item.ip;
        xhr.addEventListener("load", reqListener);
        xhr.open('POST', 'http://localhost:2056/save/name', true);
        xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhr.send(`name=${document.getElementById('name').value}&&ip=${item.ip}`);
        return false;
    });

    }
});

function reqListener() {
    const resp = JSON.parse(this.responseText);
    if (resp.error)
        console.error(resp.errorMsg);
    else {
        browser.tabs.query({active: true, currentWindow: true})
            .then(function (tabs) {
                browser.tabs.remove(tabs[0].id);
                browser.tabs.create({
                    url: './pages/second_page.html'
                });
            });
    }
}

我没有从
e.target
中得到任何信息,它在控制台上显示

我不确定是什么原因导致了您这边的问题,我根据您的评论创建了一个扩展,从您的代码中删除了一些额外的行,它在Chrome和Firefox中对我有效:

这是我使用的JavaScript代码:

document.addEventListener("click", (e) => {
    e.preventDefault();
    console.log('e.target: ',e.target)
});

请重新检查您的代码或与我们共享整个项目好吗?

我不确定是什么原因导致了您的问题,我根据您的评论创建了一个扩展,从您的代码中删除了一些额外的行,它在Chrome和Firefox中对我有效:

这是我使用的JavaScript代码:

document.addEventListener("click", (e) => {
    e.preventDefault();
    console.log('e.target: ',e.target)
});

请重新检查您的代码或与我们共享整个项目好吗?

后台脚本无法访问页面的上下文。如果要操作页面的DOM,您必须使用内容脚本。我没有使用后台脚本访问DOM元素
index.js
是我与html页面关联的脚本文件。后台脚本无法访问页面的上下文。如果要操作页面的DOM,必须使用内容脚本。我没有使用后台脚本访问DOM元素
index.js
是我与html页面关联的脚本文件。我通过在
document.reday
函数中注册eventListener解决了这个问题。我通过在
document.reday
函数中注册eventListener解决了这个问题。