【问题标题】:Append urlVariable to next page's link将 url 变量附加到下一页链接
【发布时间】:2011-07-01 16:23:09
【问题描述】:

如何设置页面以将 urlVariable 附加到其链接中?

例如,我有 3 个不同的页面,所有页面都链接到同一个页面,例如
接收者.html

首页链接:

receiver.html?sender=1

第二页链接:

receiver.html?sender=2

第三页链接:

receiver.html?sender=3

当第一个页面被点击时,它会将用户发送到receiver.html,它里面有很多外链,脚本会根据上面的三个页面将变量附加到它的所有外链中?

receiver.html

outgoinglink.html?sender=1
outgoinglink2.html?sender=1
outgoinglink3.html?sender=1

如果使用第二页,receiver.html 将追加

?sender=2

在它里面的所有链接等等等等..

【问题讨论】:

    标签: jquery append href


    【解决方案1】:

    您可以使用本文 (http://stackoverflow.com/questions/901115/get-query-string-values-in-javascript) 中显示的函数来获取您的参数

    function getParameterByName( name )
    
        {
          name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
          var regexS = "[\\?&]"+name+"=([^&#]*)";
          var regex = new RegExp( regexS );
          var results = regex.exec( window.location.href );
          if( results == null )
            return "";
          else
            return decodeURIComponent(results[1].replace(/\+/g, " "));
        }
    
    var sender = getParameterByName('sender');
    

    然后将您需要的内容附加到所有href:

    $('a').each(function(){
        var href = $(this).attr('href');
        if (href.indexOf('&') !== -1){
            //if you have on & in the href you must use &
            $(this).attr('href', href+'&sender='+sender);
         }else{
            $(this).attr('href', href+'?sender='+sender);
         }
    });
    

    【讨论】:

    • 谢谢!我还可以通过按名称将另一个变量添加到 getParameter 中来附加额外的 urlVars,因此:var sender = getParameterByName('sender');var pv = getParameterByName('pv'); 并修改函数调用:$(this).attr('href', href+'&sender='+sender+'&pv='+pv);
    • 当然可以,但是需要这样修改else部分:$(this).attr('href', href+'?sender='+sender'&pv='+pv);,这样tue url才有效!如果这回答了您的问题,请接受答案
    猜你喜欢
    • 1970-01-01
    • 2013-09-14
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    相关资源
    最近更新 更多