在javascript中获取url字符串参数并将其传递到一个新的url


Getting url string parameters in javascript and passing them into a new url

我想用javascript来完成一些我在PHP中做了很多次的事情。

我有两个实例的网址进入我的网站。一个来自追踪链接…另一个来自搜索或分享,等等…

跟踪链接:www.foo.com/blog?offer=pine&sub_id=123非付费搜索链接:www.foo.com/blog

我想检测我的链接是否有一个字符串,如果是这样的话,将报价传递到页面内的url。在PHP中,我会这样做。

<?php
    if(array_key_exists('sub_id', $array)) {
        $my_variable = $array['sub_id'];
    } else {
        $my_variable = 'my default value';
    }
?>
    <a class="submitbutton" href="www.joinmywebsite.com/join?offer=pine&sub_id=<?php echo $my_variable; ?>">Join My Site</a>

有可能用javascript做到这一点吗?我已经搜索和搜索,我找到的任何函数要么返回字符串参数的值,要么什么也没看到,什么也不做。

谢谢。

当然:

function getParameterByName(name) {
    name = name.replace(/['[]/, "''[").replace(/[']]/, "'']");
    var regex = new RegExp("[''?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results == null ? "" : decodeURIComponent(
                                                results[1].replace(/'+/g, " "));
}
var subId = getParameterByName('sub_id') || 'my default value';
$(function(){
     $('a.submitbutton')
       .prop({ href: 'www.joinmywebsite.com/join?offer=pine&sub_id=' + subId  });
});

来源:我如何在JavaScript中获得查询字符串值?

如果我理解你的问题,这应该是答案:

<script type='text/javascript'>
function getUrlVars()
{
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { vars[key] = value; });
    return vars;
}

var path = window.location.href;
var position = path.indexOf("sub_id");
if (position != -1)
    var desired = getUrlVars()["sub_id"];
else
    var desired = 'my default value';
//alert(desired);
</script>
<a class="submitbutton" onClick="document.location.href='http://www.joinmywebsite.com/join?offer=pine&sub_id=' + desired;">Join My Site</a>