使用会话ID jquery追加url

时间:2011-01-25 14:59:31

标签: jquery

我有一个静态会话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');'
});

我知道这是错的,我发现的所有文档都比我的需要复杂得多。谢谢!

4 个答案:

答案 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);
  }
});