Tampermonkey脚本 - 如何防止无限提交

时间:2016-07-20 09:39:12

标签: javascript greasemonkey tampermonkey

我尝试通过编写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上再次运行,所以它一直在提交,当然这不是我想要做的。

任何帮助解决这个问题都将非常感谢!!!

2 个答案:

答案 0 :(得分:2)

仅当“加载”指示不可见时才执行操作:

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();
}

答案 1 :(得分:0)

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

唯一的是输入框的默认值是"输入您的产品名称,UPC,EAN,ISBN或ASIN"。所以我改变了下面的代码。



var node = title.SelectSingleNode(".//span[@id='titletextonly']");




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

还有其他想法吗?