4

Firefox 拡張機能で純粋な Javascript を使用してフォームを作成して送信しようとしています。ただし、最も基本的なフォームでも、ブラウザー コンソールは次のように言い続けます。

TypeError: form.submit は関数ではありません

この件に関するいくつかの投稿を検索して読みましたが、この特定の問題を扱っていませんでした。よくある間違いは、「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 に答える