• js常用代码


    1、获取URL的各个属性值:域名,查询字符串等
          //分析url
            function parseURL(url) {
                var a = document.createElement("a");
                a.href = url;
                return {
                    source: url,
                    protocol: a.protocol.replace(":", ""),
                    host: a.hostname,
                    port: a.port,
                    query: a.search,
                    params: (function () {
                        var ret = {},
                    seg = a.search.replace(/^\?/, "").split("&"),
                    len = seg.length, i = 0, s;
                        for (; i < len; i++) {
                            if (!seg[i]) { continue; }
                            s = seg[i].split("=");
                            ret[s[0]] = s[1];
                        }
                        return ret;

                    })(),
                    file: (a.pathname.match(/\/([^\/?#]+)$/i) || [, ""])[1],
                    hash: a.hash.replace("#", ""),
                    path: a.pathname.replace(/^([^\/])/, "/$1"),
                    relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [, ""])[1],
                    segments: a.pathname.replace(/^\//, "").split("/")
                };
            }

            //替换myUrl中的同名参数值
            function replaceUrlParams(myUrl, newParams) {
                /*
                for (var x in myUrl.params) {
                for (var y in newParams) {
                if (x.toLowerCase() == y.toLowerCase()) {
                myUrl.params[x] = newParams[y];
                }
                }
                }
                */

                for (var x in newParams) {
                    var hasInMyUrlParams = false;
                    for (var y in myUrl.params) {
                        if (x.toLowerCase() == y.toLowerCase()) {
                            myUrl.params[y] = newParams[x];
                            hasInMyUrlParams = true;
                            break;
                        }
                    }
                    //原来没有的参数则追加
                    if (!hasInMyUrlParams) {
                        myUrl.params[x] = newParams[x];
                    }
                }
                var _result = myUrl.protocol + "://" + myUrl.host + ":" + myUrl.port + myUrl.path + "?";

                for (var p in myUrl.params) {
                    _result += (p + "=" + myUrl.params[p] + "&");
                }

                if (_result.substr(_result.length - 1) == "&") {
                    _result = _result.substr(0, _result.length - 1);
                }

                if (myUrl.hash != "") {
                    _result += "#" + myUrl.hash;
                }
                return _result;
            }

            //辅助输出
            function w(str) {
                document.write(str + "");
            }

            var myURL = parseURL("http://abc.com:8080/dir/index.html?id=255&m=hello#top");
            w("myUrl.file = " + myURL.file)     // = "index.html"
            w("myUrl.hash = " + myURL.hash)     // = "top" 
            w("myUrl.host = " + myURL.host)     // = "abc.com"
            w("myUrl.query = " + myURL.query)    // = "?id=255&m=hello"
            w("myUrl.params = " + myURL.params)   // = Object = { id: 255, m: hello } 
            w("myUrl.path = " + myURL.path)     // = "/dir/index.html" 
            w("myUrl.segments = " + myURL.segments) // = Array = ["dir", "index.html"]
            w("myUrl.port = " + myURL.port)     // = "8080" 
            w("myUrl.protocol = " + myURL.protocol) // = "http" 
            w("myUrl.source = " + myURL.source)   // = "http://abc.com:8080/dir/index.html?id=255&m=hello#top"

            var _newUrl = replaceUrlParams(myURL, { id: 101, m: "World", page: 1, "page": 2 });

            w("新url为:")
            w(_newUrl); //http://abc.com:8080/dir/index.html?id=101&m=World&page=2#top
     
    2、动态加载JS方法
    var loadJs = function(url, callback) {
      var script = document.createElement('script');
      script.type = 'text/javascript';
      if (callback)
       script.onload = script.onreadystatechange = function() {
        if (script.readyState && script.readyState != 'loaded' && script.readyState != 'complete') return;
        script.onreadystatechange = script.onload = null;
        callback();
       };
      script.src = url;
      document.getElementsByTagName('head')[0].appendChild (script);
     }

  • 相关阅读:
    x64共享库中的位置无关代码(PIC)
    windows库的创建和使用:静态库+动态库
    溃烂中的代码
    微信考勤玩法曝光!
    Android自己定义ViewGroup(二)——带悬停标题的ExpandableListView
    WPF对象级资源的定义与查找
    java List转换和数组互转
    maven 打包构建相关命令
    java8 lambda表达式
    Mysql INSTR函数
  • 原文地址:https://www.cnblogs.com/acafaxy/p/1986960.html
Copyright © 2020-2023  润新知