如何加密与提交操作一起发送的formdata消息

时间:2012-01-13 03:36:37

标签: javascript forms javascript-events greasemonkey userscripts

我有这个代码,将属性“onclick”设置为所有提交按钮以调用某个功能。 用户脚本将在社交网站(Facebook)上运行并加密用户发送的消息。 所以我希望在click事件中暂停默认操作,访问它以某种方式发送的消息(我猜想使用formData),对文本消息运行encrypt函数并继续提交动作并加密发送消息。 所以这是脚本:

$('textarea', window.content.document)
.closest('form')
.find('input[type=submit]')
.attr("onclick","dont();");

function dont(){
//access formData sent with the submit action and encrypt the message
};

2 个答案:

答案 0 :(得分:1)

看起来你可能错过了回归。在没有返回的onclick属性之前,函数不会停止动作的发生。

$('textarea', window.content.document)
.closest('form')
.find('input[type=submit]')
.attr("onclick","return dont();");

function dont(){
//access formData sent with the submit action and encrypt the message
//be sure to return true or false depending on if you want the action submitted
};

答案 1 :(得分:0)

不是在提交按钮上放置onclick功能,而是直接定义一个调用函数来收集和加密表单上的数据,如下所示

<form name="sampleForm" method="post" onsubmit="return dont()" enctype="multipart/form-data" action="someurl">


function dont()
{
    //code to access the form data and encrypt

    if(error)
       return false;  //Stops the submission of the form
    else
      return true;

}

或其他

只需一个按钮(输入类型=按钮)而不是提交(输入类型=提交)并定义onclick功能,如下所示

<input type="button" value="submit" onclick="dont()" />

function dont()
{
    //code to access the form data and encrypt

    if(error)
       alert("Failed")  //Stops the submission of the form
    else
      document.forms[0].submit();

}

希望这有帮助。