我想在点击按钮时将用户重定向到目标网址。目标URL是可变的,必须从当前页面URL参数“source”中读取:
例如,我有一个网址http://w/_l/R/C.aspx?source=http://www.google.com
当用户点击按钮时,他正在重定向到http://www.google.com
我如何用jQuery做到这一点?
答案 0 :(得分:3)
首先你需要获取url param:source 这可以通过以下函数完成:
function GetParam(name) {
return decodeURI(
(RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
);
}
// you can use it like
var source = GetParam('source');
//then
window.location.href = source
答案 1 :(得分:0)
在按钮单击处理程序上,只需编写window.location.href = http://www.google.com
答案 2 :(得分:0)
获取url params :(从另一个stackoverflow问题复制):
var params= {};
document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
function decode(s) {
return decodeURIComponent(s.split("+").join(" "));
}
params[decode(arguments[1])] = decode(arguments[2]);
});
window.location = params['source'];
答案 3 :(得分:0)
您需要解析查询字符串以获取变量源的值。 你不需要jQuery。
这样的简单函数就足够了:
function getFromQueryString(ji) {
hu = window.location.search.substring(1);
gy = hu.split("&");
for (i = 0; i < gy.length; i++) {
ft = gy[i].split("=");
if (ft[0] == ji) {
return ft[1];
}
}
}
location.href = getFromQueryString("source");
答案 4 :(得分:0)
使用here中的网址解析代码,使用此代码解析您的网址(这应该包含在您的文档中一次):
var urlParams = {};
(function () {
var e,
a = /\+/g, // Regex for replacing addition symbol with a space
r = /([^&=]+)=?([^&]*)/g,
d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
q = window.location.search.substring(1);
while (e = r.exec(q))
urlParams[d(e[1])] = d(e[2]);
})();
然后执行此操作以重定向到源参数:
window.location.href = urlParams["source"];
答案 5 :(得分:0)
由于您使用的是jQuery框架,我会使用jQuery URL Parser plugin,它可以安全地解析和解码URL参数,片段......
你可以像这样使用它:
var source = $.url().param('source');
window.location.href = source;
答案 6 :(得分:-1)
你可以这样做,
<a id="linkId" href=" http://w/_l/R/C.aspx?source=http://www.google.com">Click me</a>
$('#linkId').click(function(e){
var href=$(this).attr('href');
var url=href.substr(href.indexof('?'))
window.location =url;
return false;
});