【问题标题】:Jquery : Append querystring to all linksJquery:将查询字符串附加到所有链接
【发布时间】:2012-07-17 15:43:38
【问题描述】:

我想在页面内的所有动态链接上附加一个查询字符串 - 以修复旧版本中的错误 - 这可能吗?

有什么想法吗?

【问题讨论】:

    标签: jquery jquery-mobile


    【解决方案1】:

    这样的?

    var querystring = 'myquerystringtoadd';
    
    $('a').each(function() {
        var href = $(this).attr('href');
    
        if (href) {
            href += (href.match(/\?/) ? '&' : '?') + querystring;
            $(this).attr('href', href);
        }
    });
    

    Working example.

    【讨论】:

    • 比@woz 答案更好,因为检查现有查询字符串并附加 & 或前缀 ?
    • @jaygooby。是的。还应该对 url 锚点(“#”)进行额外检查。
    • @flem -1:这不起作用。我觉得应该是href.match(/\?/)。
    • @dalbaeb 好地方。 ? 没有逃脱。我已经更正了帖子并添加了一个工作小提琴。谢谢!如果您现在满意,请删除不赞成票:)
    • 我遇到的唯一问题是 a 标记没有 href 属性,所以我只是将 if(href) { href+= ... 添加到混合中以阻止它破坏这样的链接.
    【解决方案2】:

    本机 javascript 解决方案:

    var querystring = 'yourQueryStringHere=;-)';
    
    document.addEventListener('click', function (e) {
    
        var x = e.originalTarget;
        if (x.nodeName === 'A') {
    
            var href = x.getAttribute('href');
    
            if(href) {
                href += (/\?/.test(href) ? '&' : '?') + querystring;
                x.setAttribute('href', href);
            }
        }
    
    }, false);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 2015-02-02
      • 1970-01-01
      • 2023-03-26
      • 2013-01-09
      • 1970-01-01
      相关资源
      最近更新 更多