2009-11-22 40 views
1

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

"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加载的页面,但手动加载它,而不是,同样的代码工作;所有字段都被填写并提交表单。

任何想法是什么错;

+0

您是否尝试过重新安装的Greasemonkey和Firefox? – 2010-01-10 18:06:28

回答

0

您不能只是请求内容并尝试执行它。您需要将其附加到当前页面。 类似:

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

还没有测试,但你得到了主意