4

我正在尝试在 Firefox 扩展中使用纯 Javascript 创建和发送表单。然而,即使是最基本的形式,浏览器控制台仍然会说:

TypeError:form.submit 不是函数

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

这是我的代码,灵感来自这个很棒的帖子JavaScript 发布请求,如表单提交

// 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 的新手,所以很可能我犯了一个小错误。谁能给我一个关于如何解决这个问题的线索?

4

1 回答 1

5

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

var form = document.createElementNS('http://www.w3.org/1999/xhtml', 'form');
于 2013-09-30T21:33:39.643 回答