我如何让我的脚本连续提交两个表单
How do I get my script to submit two forms in series?
我有两个页面,每个页面上有一个表单。当您提交第一张表格时,您将使用第二张表格移动到第二页。
如何在一个Greasemonkey脚本中提交两个表单。
循序渐进:
- 打开Page_1
- 单击submit_button
- 提交操作将我们移至第2页
- 单击submit_button_2
请注意,两个页面都有相同的URL,但Page_1显示在"GET"上,Page_2显示在"POST"上。(编者按:它们可能是AJAX支持的表单,也可能提交到相同页面的表单。)
将两个url都添加到@include列表中,并遵循以下伪代码:
if (isUrl1) {
submitFormAtUrl1;
} else {
submitFormAtUrl2;
}
示例:
// @include http://domain/page1.php
// @include http://domain/page2.php
...
if ("/page1.php" == location.pathname) {
form1.submit();
} else {
form2.submit();
}
如果总是希望单击这些表单,请使用如下脚本。这种方法也适用于AJAX化的表单/页面,比如你的
// ==UserScript==
// @name _Submit either of 2 forms
// @include {{{Page_1}}}
// @include {{{Page_2}}}
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a major design change
introduced in GM 1.0.
It restores the sandbox.
*/
waitForKeyElements ("SUBMIT_BUTTON_1 CSS SELECTOR", clickOnSubmitButton);
waitForKeyElements ("SUBMIT_BUTTON_2 CSS SELECTOR", clickOnSubmitButton);
function clickOnSubmitButton (jNode) {
var clickEvent = document.createEvent ('MouseEvents');
clickEvent.initEvent ('click', true, true);
jNode[0].dispatchEvent (clickEvent);
}
一些示例代码会有所帮助,但同时提交两个表单的最简单方法是将它们合并到一个页面中。如果你想在视觉上分解这两个表单,你可以使用jQuery来隐藏表单的第二部分,直到用户点击按钮,然后隐藏第一部分并显示第二部分。
另一种选择是提交第一个表单,然后将其所有响应添加到第二页服务器端的隐藏表单元素中。
相关文章:
- 在servlet中提交两个表单
- 填写表单后替换两个变量
- 我如何让我的脚本连续提交两个表单
- 如何将jsp表单传递到两个页面
- 当多个表单在同一页面中时,WTForms提交表单两次
- 使用 Javascript 显示 HTML 表中两个单元格之间的差异
- 如何防止用户提交表单两次
- 使用PDO查找来自两个不同表的两个值的SUM
- 如何限制用户提交表单两次
- Jquery表单-两个按钮-一个使用ajax,一个不使用
- 使用数据表比较两个列
- 当用户双击提交按钮时,需要避免向服务器提交表单两次
- 为什么link_to提交表单两次?
- 如何排列一个表的两个单元格
- jQuery验证提交表单两次
- 避免表单多个提交,并在完成后重新启用
- PHP表单- 2个按钮(一个销毁会话和重新加载页面和一个继续到下一页)
- jQuery绑定发送表单两次
- 不能用ajax提交我的表单两次
- 低调地提交Ajax表单两次