代码之家  ›  专栏  ›  技术社区  ›  Karol Zlot Mickael

这个函数不能调用,是吗?

  •  0
  • Karol Zlot Mickael  · 技术社区  · 7 年前

    这个脚本不是来自我的网站,我想打电话给 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 回复  |  直到 7 年前
        1
  •  1
  •   Nate    7 年前

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

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

    推荐文章