Эта функция не вызывается, не так ли? - PullRequest
0 голосов
/ 01 декабря 2018

Этот скрипт не с моего сайта, я хотел бы позвонить crocodile(), потому что теперь мне нужно ждать 20 секунд, прежде чем он будет вызван.

Я хотел бы добиться этого через консоль браузера или UserJS или Selenium.

Однако я подозреваю, что это невозможно, как объяснено в:

Доступ и изменение переменнойв анонимной функции в качестве параметра в другой функции 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 голосов
/ 01 декабря 2018

Функция крокодила определена внутри функции готовности документа.Это означает, что он может быть вызван только из этой функции, поскольку он не существует вне этой области.Вам придется переместить определение метода из вызова готовности документа, если вы хотите иметь возможность вызывать его извне, используя свой набор тестов, а не ждать 20 секунд (или, по крайней мере, так говорит комментарий обратного отсчета), чтобы онПожар.

Если вы хотите проверить это, не ожидая так долго, рассмотрите возможность настройки этих 20 секунд, чтобы ваш набор тестов мог сократить его.Кроме того, если вы определили функцию крокодила вне вызова готовности документа, вы фактически можете выполнить модульное тестирование этой функции.

...