【问题标题】:Tampermonkey Script - How to prevent infinite submittingTampermonkey 脚本 - 如何防止无限提交
【发布时间】:2016-11-23 11:25:57
【问题描述】:

我正在尝试通过编写 Tampermonkey 脚本来自动填写和提交表单。

下面是我的脚本:

// ==UserScript==
// @name       FBA Calculator
// @namespace  http://use.i.E.your.homepage/
// @version    0.1
// @description  enter something useful
// @match        https://sellercentral.amazon.com/fba/profitabilitycalculator/index?lang=en_US
// @require  https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js

// @copyright  2012+, You

// ==/UserScript==
$(document).ready(function(){

    $("#search-string").val("B017C1Q7TM");
    $("input.a-button-input[type='submit']").eq(0).click();

});

但是当脚本运行时,它会重定向到同一个 url,所以脚本只是在这个匹配的 url 处再次运行,所以它一直在提交,当然这不是我的本意。

任何解决此问题的帮助将不胜感激!!!

【问题讨论】:

    标签: javascript greasemonkey tampermonkey


    【解决方案1】:

    仅在“加载”指示器不可见时执行该操作:

    if (!$("#please-wait-loading").is(":visible")) {
        $("#search-string").val("B017C1Q7TM");
        $('#search-form input[type="submit"]').click();
    }
    

    或者使用你自己的标志:

    if (!document.body.__searching) {
        document.body.__searching = true;
        $("#search-string").val("B017C1Q7TM");
        $('#search-form input[type="submit"]').click();
    }
    

    【讨论】:

    • 感谢 wOxxOm,我尝试了您的建议,但似乎仍然无法解决问题。你能看看我的第二个帖子吗?
    • 哇!两种解决方案都很完美!非常感谢您的帮助。
    【解决方案2】:

    感谢 WOxxOm,这是一个非常鼓舞人心的答案。

    只有输入框的默认值是“输入您的产品名称、UPC、EAN、ISBN 或 ASIN”。所以我将代码更改如下。

    // ==UserScript==
    // @name       FBA Calculator Test
    // @namespace  http://use.i.E.your.homepage/
    // @version    0.1
    // @description  enter something useful
    // @match        https://sellercentral.amazon.com/fba/profitabilitycalculator/index?lang=en_US
    // @require  https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js
    
    // @copyright  2012+, You
    
    // ==/UserScript==
    $(document).ready(function(){
    
        if($("#search-string").val() == "Enter your product name, UPC, EAN, ISBN, or ASIN") {
            $("#search-string").val("B017C1Q7TM");
            $("input.a-button-input[type='submit']").eq(0).click();
        }
    
    });

    但不幸的是,如果你尝试运行代码,你会发现每次提交时,它仍然重定向到同一个页面,并且仍然继续提交:(

    还有什么想法可以解决吗?

    【讨论】:

    • 网址中有B017C1Q7TM吗?您可以查看location.href
    • 我查了url,每次都是同一个url:sellercentral.amazon.com/fba/profitabilitycalculator/…
    • 非常感谢您的快速回复。看来代码仍然无法按预期工作。你能做一个试运行吗?你会发现代码不起作用,仍然不停地提交。
    • 最新更新就像一个魅力!非常感谢你:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    • 2022-10-18
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    相关资源
    最近更新 更多