简单的javascript在控制台中工作,但不是greasemonkey

时间:2014-01-07 19:57:24

标签: javascript greasemonkey

我只是想在这个网站上提交已填写的登录表单: http://portal.mypearson.com/mypearson-login.jsp

在firefox控制台中,我可以输入: doSubmit(); 它工作正常但它不适用于greasemonkey。 “不起作用”我的意思是没有任何反应。我可以做document.forms [0] .submit(),但页面回来抱怨用户和传递变量设置不正确。

我需要做些什么才能使在控制台中运行的脚本能够在greasemonkey中运行?

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用doSubmit()函数中的功能并执行这些操作?

快速检查代码如下:

if (!validate(displayForm)) {return false;}
loginForm.loginname.value = displayForm.loginname.value;
loginForm.password.value = hex_md5(displayForm.password.value.toLowerCase());
loginForm.encPassword.value = 'Y';
loginForm.submit();
return true;

看起来表单实际上只是将其值复制到另一个表单,然后提交另一个表单。

您可以先使用以下命令删除onsubmit事件:

displayForm.setAttribute("onsubmit", null)

或者你可以一起绕过显示形式直接到源头。没有所有额外的步骤,你的greasemonkey脚本看起来就像这样:

// Setup your authentication values here
var username = "(Your user name)";
var password = "(Your password)";
// Add your variables to the submit form
loginForm.loginname.value = username;
loginForm.password.value = hex_md5(password.toLowerCase());
loginForm.encPassword.value = 'Y'
// submit the form
loginForm.submit();

这将绕过一起显示给用户的表单。

希望有所帮助。