1

我需要编写一个可以在世界上所有可能的网站上使用的脚本。首先,我需要一个当前版本的 jQuery。如果没有 jQuery 或旧版本正在运行,脚本将首先添加 jQuery。第二步是添加 jQuery UI。

问题是:如果当前版本的 jQuery 正在运行,那么一切正常。否则我总是得到错误:

未捕获的类型错误:无法读取未定义的属性“ui”

任何人都可以帮助我吗?我的 JS 代码:

var $tx;
    //Check if a current version of jQuery is runnig.
    if (window.jQuery) {
        $tx = jQuery;
        if( jQuery().jquery.replace(".", "") < 17.1 ) {
            addjQuery();
        } else {
            addNoConflict();
        }
    } else {
        addjQuery();
    }

    // Get jQuery Version

    function addjQuery() {
        loadScript("https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js", function(){
            $tx = jQuery.noConflict(true);
            addNoConflict();
        });
    }

    // Add Script which requiers jQuery and jQuery UI

    function addNoConflict() {
        loadScript("https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js", function(){
            var script = document.createElement("script")
                script.type = "text/javascript";
                script.src = "https://www.tariffuxx.de/services/js/txTarifrechnerScript.js";
                document.getElementsByTagName("head")[0].appendChild(script);
        });
    }

    // Load required Scripts

    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);
    }

先感谢您!

4

0 回答 0