Javascript IE9-SCRIPT5009:“;jQuery";是未定义的

Javascript IE9-SCRIPT5009:“;jQuery";是未定义的,javascript,jquery,internet-explorer,cross-browser,Javascript,Jquery,Internet Explorer,Cross Browser,以下代码运行在错误脚本5009中:“jQuery”在IE9中未定义(可能在旧的IE版本中也未定义): 如果调用了addjQuery函数,则此处会出现错误“$tx=jQuery.noConflict();”。如果网站已经使用了当前的jQuery版本,那么eServerythings可以正常工作 有人知道如何解决这个问题吗?您的脚本在执行过程中加载其他脚本,它们不会同步执行,而是异步执行。当$tx=jQuery.noConflict()时执行无法保证jQuery已加载 如果你需要同步进行,或者更好的

以下代码运行在错误脚本5009中:“jQuery”在IE9中未定义(可能在旧的IE版本中也未定义):

如果调用了
addjQuery
函数,则此处会出现错误“$tx=jQuery.noConflict();”。如果网站已经使用了当前的jQuery版本,那么eServerythings可以正常工作


有人知道如何解决这个问题吗?

您的脚本在执行过程中加载其他脚本,它们不会同步执行,而是异步执行。当
$tx=jQuery.noConflict()时执行无法保证jQuery已加载


如果你需要同步进行,或者更好的方法是使用这样的工具来处理。(它还允许这种回退)。

首先确保addjQuery正在添加脚本。是否使用window.jQuery再次检查?什么是最好的解决方案?你很受欢迎,如果我的答案对你有用,请考虑投票。如果它解决了你的问题,请考虑接受它。@ BenjaminGruenbaum注意到你需要一些基本的信誉来投票。我有这个名声;-)createXMLHttpObject并不是一个真正的方法,它只是他在回答中用来说明其观点的一个名称。我更喜欢第二个答案,因为它不是同步的,而是基于回调的。@BenjaminGruenbaum你是说Alan Joseph的答案吗?@BenjaminGruenbaum非常感谢你,基于回调的方法非常完美。我在上面添加了我的解决方案。
var $tx;
if (window.jQuery) {
    $tx = jQuery;
    if( jQuery().jquery.replace(".", "") < 17.1 ) {
        addjQuery();
    }   
} else {
    addjQuery();
}
function addjQuery() {
    document.write('<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"><\/script>');
    document.write('<script type="text/javascript">$tx = jQuery.noConflict();<\/script>');
}
document.write('<script src="workingScript.js"><\/script>');
var $tx;
if (window.jQuery) {
    $tx = jQuery;
    if( jQuery().jquery.replace(".", "") < 17.1 ) {
        addjQuery();
    }   
} else {
    addjQuery();
}
function addjQuery() {
    loadScript("http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js", function(){
        $tx = jQuery.noConflict(true);
    });
}
document.write('<script src="workingScript.js"><\/script>');

function loadScript(url, callback){

    var script = document.createElement("script")
    script.type = "text/javascript";

    if (script.readyState){  //IE
        script.onreadystatechange = function(){
            if (script.readyState == "loaded" ||
                    script.readyState == "complete"){
                script.onreadystatechange = null;
                callback();
            }
        };
    } else {  //Others
        script.onload = function(){
            callback();
        };
    }
    script.src = url;
    document.getElementsByTagName("head")[0].appendChild(script);
}
(function ($) {
    // some code here
})($tx);