gpt4 book ai didi

javascript - form.submit 不是函数 - 如何在 Firefox 扩展中使用(纯)Javascript 创建和发布表单

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:35:33 26 4
gpt4 key购买 nike

我正在尝试在 Firefox 扩展中使用纯 Javascript 创建和发送表单。但是,即使使用最基本的形式,浏览器控制台也会不断显示:

TypeError: form.submit is not a function

我搜索并阅读了几篇关于这个主题的帖子,但他们没有处理这个特定问题。一个常见的错误是将输入命名为“提交”,但这里不是这种情况。

这是我的代码,灵感来自这篇很棒的帖子 JavaScript post request like a form submit :

// Create a form
var form = document.createElement("form");
form.action = "http://example.com";
form.method = "POST"

var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "submit");
hiddenField.setAttribute("name", "sub");
hiddenField.setAttribute("value", "send");
form.appendChild(hiddenField);

// Create a document
var doc = document.implementation.createDocument ('http://www.w3.org/1999/xhtml', 'html', null);
var body = document.createElementNS('http://www.w3.org/1999/xhtml', 'body');
body.appendChild(form);
doc.documentElement.appendChild(body);

// Call the form's submit method
form.submit();

我是 Javascript 的新手,所以我很可能犯了一个微不足道的错误。谁能告诉我如何解决这个问题?

最佳答案

当您创建一个新元素“form”时,您是在浏览器的范围内创建它,因此您正在创建一个 xul 元素。您必须按照创建“body”元素的方式进行操作:

var form = document.createElementNS('http://www.w3.org/1999/xhtml', 'form');

关于javascript - form.submit 不是函数 - 如何在 Firefox 扩展中使用(纯)Javascript 创建和发布表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19104058/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com