سؤال

I have the following code:

$.ajax({
    beforeSend: function () {
        console.log("fetching script");
    },
    url: "../../../scripts/review-level-" + ig.game.currentLevel.toString() + ".js",
    dataType: "script",
    type: "GET",
    success: function (script) {
        console.log(reviewFunc());
    },
    error: function (jqXHR, textStatus, errorThrown) {
        console.log(errorThrown);
    }
});

I am trying to fetch a script using jQuery.ajax, I've tried the shorthand function $.getScript() as well, and I am getting a SyntaxError as the errorThrown in the error parameter, even though under the network tab in the chrome developer tool it shows the script as being successfully fetched with a status code of 200. here is the script I am fetching:

function reviewFunc() {
    var overlay = ig.game.spawnEntity("EntityInfooverlay", 0, 0, {
        msg: {
            status: true,
            message: "Question #1:",
            counterOut: 0
        }
    });
    console.log("reviewFunc Finished");
    return overlay;
}

I can't see any syntax errors in there so i'm kinda stumped. If anyone see's anything i don't or has encountered this before any help would be greatly appreciated.

هل كانت مفيدة؟

المحلول

Might be easier to debug with some raw javascript:

loadScript("../../../scripts/review-level-" + ig.game.currentLevel.toString() 
    + ".js", function() { reviewFunc(); });

function loadScript(src, callback)
{
    var s, r;
    r = false;
    s = document.createElement('script');
    s.type = 'text/javascript';
    s.src = src;
    s.onload = s.onreadystatechange = function() {
        if ( !r && (!this.readyState || this.readyState == 'complete') )
        {
            r = true;
            callback();
        }
    };
    document.body.appendChild(s);
}

EDIT

Solution was found here.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top