解析gsb代码


码海无涯系列,写给自己的注释

解析gsb代码

// 以本站 url 来看,不需要配合使用 带查询参数的 nginx 伪静态代码:rewrite /gsb/(.*) /gsb.html?file=$1 last;
// 只需要使用 rewrite /gsb/(.*) /gsb.html last;
    function getQueryString(name) {
        // 从下面的用法中看出,传值字符串“id”,并连接为正则 : (^|&)id=([^&]*)(&|$)
        // 该正则意思为:^: 匹配字符串的开头。|: 或的意思,表示匹配前面的或后面的。&: 匹配&符号。整体的意思是:匹配字符串的开头或者一个&符号,表示"id"参数可能出现在字符串的开头或其他参数之后。
        // id=:直接匹配字符串"id="
        // ([^&]*):
        // (): 捕获组,用于提取匹配到的子字符串。
        // []: 字符类,表示匹配中括号内的任意一个字符。
        // ^: 在字符类中表示取反,即匹配除了中括号内字符的所有字符。
        // &: 匹配&符号。
        // *: 匹配前面的子表达式零次或多次。
        // 整体的意思是:匹配0个或多个非&字符,也就是匹配"id"参数的值。
        
        // &|$:
        // &: 匹配&符号。
        // |: 或的意思。
        // $: 匹配字符串的结尾。
        // 整体的意思是:匹配一个&符号或字符串的结尾,表示"id"参数可能是最后一个参数或后面还有其他参数
        var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
        console.log('reg是'+reg);
        // 声明 r 是:从URL中获取的参数,并匹配上方的正则
        // 从本站点的 URL来看(主域名/gsb/数字.html),该函数是没用的,因为没有参数,所以变量r是undefined或null
        // 该函数适用于查找带有“id”的字符串,
        var r = window.location.search.substr(1).match(reg);
        console.log('r是'+r);
        if (r != null) {
            // unescape(),该方法解码escape()的编码,已废弃,且这里没有使用过escape编码,属实难蚌
            return unescape(r[2]);
        }
        return null;
    }
    
    
    // 声明 pageId为 当前 URL 的路径名+一个空,+""实在是多余的
    // 从本站点的 URL来看(主域名/gsb/数字.html),pageId是:/gsb/数字.html
    var pageId = location.pathname + "";
    console.log('pageId是' + pageId);
    
    // 没用的代码
    var demoId = getQueryString("id");
    console.log('demoId是' + demoId);
    
    // 没用的代码
    if (demoId != null && demoId != "") {
        pageId = demoId;
    }
    
    // 把 pageId 值传入本行代码,返回一个这里用了ByName, 比较少用的方法,且写法有问题,应该写成document.getElementsByName(pageId)[0].style.display = 'block';
    
    //  getElementsByName() 返回的是一个节点列表
    
    // 如果要保留该节点的其他样式,这应写为:如果需要保留其他样式document.getElementsByName(pageId)[0].style.setProperty('display', 'block');
    document.getElementsByName(pageId)[0].style.display = 'block';

文章作者: Alan Work
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Alan Work !
  目录