美文网首页
load_script方法

load_script方法

作者: 村长很忙 | 来源:发表于2017-01-12 13:26 被阅读79次
    (function() { //闭包
        function load_script(xyUrl, callback) {
            var head = document.getElementsByTagName('head')[0];
            var script = document.createElement('script');
            script.type = 'text/javascript';
            script.src = xyUrl;
            //借鉴了jQuery的script跨域方法
            script.onload = script.onreadystatechange = function() {
                if ((!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) {
                    callback && callback();
                    // Handle memory leak in IE
                    script.onload = script.onreadystatechange = null;
                    if (head && script.parentNode) {
                        head.removeChild(script);
                    }
                }
            };
            // Use insertBefore instead of appendChild  to circumvent an IE6 bug.
            head.insertBefore(script, head.firstChild);
        }
    
        function translate(point, type, callback) {
            var callbackName = 'cbk_' + Math.round(Math.random() * 10000); //随机函数名
            var xyUrl = "http://api.map.baidu.com/ag/coord/convert?from=" + type + "&to=4&x=" + point.lng + "&y=" + point.lat + "&callback=BMap.Convertor." + callbackName;
            //动态创建script标签
            load_script(xyUrl);
            BMap.Convertor[callbackName] = function(xyResult) {
                delete BMap.Convertor[callbackName]; //调用完需要删除改函数
                var point = new BMap.Point(xyResult.x, xyResult.y);
                callback && callback(point);
            }
        }
    
        window.BMap = window.BMap || {};
        BMap.Convertor = {};
        BMap.Convertor.translate = translate;
    })();
    

    相关文章

      网友评论

          本文标题:load_script方法

          本文链接:https://www.haomeiwen.com/subject/iivdbttx.html