我正在尝试使用javascript来完成我用PHP做过很多次的事情。
我有两个进入我网站的网址实例。一个来自跟踪链接......另一个来自搜索或分享,等等......
跟踪链接:www.foo.com/blog?offer=pine&sub_id=123 非付费搜索链接:www.foo.com/blog
我想检测我的链接是否有字符串,如果是,则将商品传递到页面中的网址。在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可以做到这一点吗?我已经搜索和搜索并且找不到函数,我发现要么返回字符串参数的值,要么它什么也看不见,什么都不做。
感谢。
答案 0 :(得分:0)
不确定
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 });
});
答案 1 :(得分:0)
如果我理解你的问题,那应该是答案:
<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>