我有一个静态会话ID我正在使用,需要在点击时将其添加到网址,但似乎无法正确使用。如果您转到http://www.mysite.com/test.php进行重定向,则需要添加会话ID XYX,因此点击页面的正确网址为http://www.mysite.com/test.php?sessionid=XYX
<a href="http://www.mysite.com/test.php" class="foo">link here</a>
$('.foo').click(function(){
(this).append(?sessionid=XYX');'
});
我知道这是错的,我发现的所有文档都比我的需要复杂得多。谢谢!
答案 0 :(得分:5)
这应该添加会话ID并将用户发送到新网址,使用e.preventDefault
使用普通事件停止系统,然后将会话ID添加到网址并在那里发送浏览器:
<a href="http://www.mysite.com/test.php" class="foo">link here</a>
$('.foo').click(function(e)
{
e.preventDefault();
window.location = $(this).attr('href') + '?sessionid=XYX';
});
答案 1 :(得分:1)
您需要更改href属性,如下所示:
$('.foo').click(function(){
$(this).attr('href', $(this).attr('href') + '?sessionid=XYX');
});
我实际上对此持怀疑态度 - 我不确定对URL的更改是否会影响链接的目标,但确实如此。更改发生,然后在完成后,默认操作将触发,加载修改后的链接。这是一个演示: http://jsfiddle.net/Mgv34/
答案 2 :(得分:0)
给这一点。
$('.foo').click(function(){
if( !this.search ) this.search = '?sessionid=XYX';
});
search
属性允许您直接在元素上设置查询字符串。
答案 3 :(得分:0)
使用onClick更改href是危险的,而不检查href是否包含'?sessionid = XYX',因为下次点击该链接会为您提供“http://www.example.com/test.php?sessionid=XYX?sessionid=XYX”
我建议
$('.foo').click(function(){
var lHref = $(this).attr('href');
var lStr = '?sessionid=XYX';
if (lHref.indexOf(lStr) < 0) {
$(this).attr('href', lHref + lStr);
}
});