【问题标题】:Trying to submit a form with GreaseMonkey, but the page stops working尝试使用 GreaseMonkey 提交表单,但页面停止工作
【发布时间】:2012-11-16 01:58:59
【问题描述】:

我需要在特定页面上提交一个表单,它需要在提交表单之前单击一个单选按钮。

我让一切正常,但是当我让 GreaseMonkey 提交表单时,页面只返回一个白页。如果我要手动单击提交,它会说“请稍等……”然后转到另一个页面。

如果需要,我可以给你我正在谈论的表单的 URL。

这是我正在使用的脚本:

$(document).ready(function() {
    $("input[pmmethod=paypal]").click();
$(".submit-button").click();
});

【问题讨论】:

    标签: javascript forms submit greasemonkey


    【解决方案1】:

    听起来好像按钮附加了一个事件处理程序,您可以尝试使用原生 JavaScript 而不是 jQuery 方法来模拟鼠标点击它;

    function simulateClick(node) {
        var ev = document.createEvent("MouseEvents");
        ev.initMouseEvent("click", true, false, self, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
        return node.dispatchEvent(ev);
    }
    
    $(document).ready(function() {
        $("input[pmmethod=paypal]").click();
    simulateClick( $(".submit-button")[0] );
    });
    

    【讨论】:

      【解决方案2】:

      我知道你想要什么...

      我已经修改了原始脚本,现在它可以工作了!

      http://userscripts.org/scripts/show/153026

      【讨论】:

        【解决方案3】:

        要使用 JavaScript 提交表单,请使用 submit(),如下所示:

        $(document).ready(function() {
            $("input[pmmethod=paypal]").click();
            $("#orderform").submit();
        });
        

        【讨论】:

        • 感谢您的回复。当我尝试您的代码时,它什么也没做。就像我说的,它确实提交了表单,但它只是进入白页而不是实际前进。这是根据 Firebug 的提交按钮:<input class="submit-button" type="submit" value="Plaats je bestelling">
        • @user1828398 请张贴表格链接。但是,请尝试:document.getElementById("form-id").submit()。确保将 form-id 替换为页面上表单元素的实际 id。
        • 我实际上认为您需要登录才能访问表单,抱歉。如何获取表单元素的 ID?
        • 如果您使用 Firebug 检查元素,请按照 HTML 直到 <form> 开始的位置。它应该类似于 <form id="some-form-id" ...>
        • 或者,您可以尝试将原始代码中的$(".submit-button").click(); 替换为:$(".submit-button").form.submit(); 也可以尝试$("#orderform").submit();document.getElementById("orderform").submit();
        猜你喜欢
        • 2015-08-30
        • 2014-04-20
        • 2013-10-27
        • 1970-01-01
        相关资源
        最近更新 更多