此函数不可调用,是吗?

时间:2018-12-01 03:27:56

标签: javascript function selenium anonymous-function userjs

该脚本不是来自我的网站,我想调用crocodile(),因为现在我必须等待20秒钟才能被调用。

我想通过浏览器控制台或UserJS或Selenium实现它。

但是我怀疑这是不可能的,

Access and modify variable in anonymous function as parameter in other function JS/Angular

对吗?我不确定,因为我对js的经验很少

$.fn.countdown = function (callback, duration, message) {
    var countdown = setInterval(
    ....
    callback.call(...);  
    ...

    , 1000);
};

$(document).ready(function () {

    var link = 'https://example.com/c?p=1';
    var userId = parseInt(2);

    if (isNaN(userId)) {
        ....
    } else {
        /* counts down 20 seconds before call */
        $(".countdown").countdown(crocodile, 20, "");  
    }


    function crocodile() {

        var _l = 'https://example.com/c?p=1';
        var _sID = parseInt(1);
        var _uID = parseInt(2);

        $.ajax({
            type: "GET",
            cashe: false,
            url: '/example',
            data: {
                idS: _sID,
                userId: _uID,
                link: _l
            },
            dataType: "json",
            traditional: true,
            success: function (data) {
                $(location).prop('href', data.url);
            }
        });
    }
});

1 个答案:

答案 0 :(得分:1)

在文档准备功能内部定义了鳄鱼功能。这意味着只能从该函数中调用它,因为它不在该范围之外。如果您希望能够使用测试套件从外部调用它,而不必等待20秒钟(或者至少是倒计时注释所说的话),则必须将方法定义从文档就绪调用中移出。火。

如果您希望在不等待很长时间的情况下进行测试,请考虑将其配置为20秒,以便您的测试套件可以缩短它。另外,如果您在文档准备调用之外定义鳄鱼功能,则实际上可以对该功能进行单元测试。