form.submit()导致greasemonkey中的未捕获异常

时间:2009-11-22 20:47:41

标签: forms events greasemonkey submit

我正在使用greasemonkey脚本加载带有ajax的页面,并自动填写页面内的表单字段并提交表单。问题是当执行form.submit()语句时,我得到一个未捕获的异常错误:

"uncaught exception: [Exception... "Component is not available"
nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"
         //location: "JS frame ::
file:///home/user/.mozilla/firefox/kwrkmbls.default/extensions/%7Be4a8a97b-f2ed-450b-b12d-ee082ba24781%7D/components/greasemonkey.js
:: anonymous :: line 375"  data: no]" 

奇怪的是,如果我不使用ajax加载页面,而是手动加载它,相同的代码可以工作;填写所有字段并提交表格。

知道什么是错的;

1 个答案:

答案 0 :(得分:0)

您不仅可以请求内容并尝试执行它。你需要将它附加到当前页面。 类似的东西:

document.body.appendChild(iframe);
iframe.addEventListener("load", function(e)
{
    e.target.contentDocument.forms.namedItem("namedForm").submit();
}, false);

没有对它进行过测试,但你明白了这个想法