我一直在google上搜索这个,所以我得到了我想从网址(link to article)获取查询参数的功能。
但我无法找到我的问题的答案,我非常积极的是它应该很容易修复,我甚至觉得愚蠢的问,但我只是找不到这个具体的答案。
当我点击链接并且我在jquery中捕获该单击时,该函数返回false(我不想刷新),因此我想要的参数不会被解析为url。我如何得到这些?
CURRENT URL: index.php?page=search&action=searchAll
<h4 class="videoLink"><a href="index.php?page=search&action=playVideo&isAjax=true&v={$result.link}" class="{$result.link}">{$result.title}</a></h4>
jQuery简化
$('.videoLink').click(playVideo);
function playVideo(){
url = getUrlVars();
return false;
}
function getUrlVars(){
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?')+1).split('&');
for(var i = 0; i < hashes.length; i++){
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
所以当我追踪网址时,我只能获得参数:page&amp;动作
答案 0 :(得分:0)
在返回false
之前,您可以获取链接并提取参数..
$('a').click(function(e){
var href = this.href;
var params = {};
// remove the part of the href up to the first ? character
// and then split the remaining at the & character
// loop the resulting list of somekey=somevalue
// and split at the = and store in the params variable
$.each(href.replace(/^.*?\?/gi,'').split('&'), function(i,val){
var parts = val.split('=');
params[parts[0]] = decodeURIComponent(parts[1]);
});
// do what you want with the params here
return false;
});
<强>更新强>
如果您希望代码与浏览器位置一起使用以及传递给它的自定义网址,您可以将其更改为
function getUrlVars(href){
var vars = [],
hash,
url = href || window.location.href;
var hashes = url.slice(url.indexOf('?')+1).split('&');
for(var i = 0; i < hashes.length; i++){
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
并像这样称呼它
function playVideo(){
url = getUrlVars(this.href);
return false;
}