2011-09-29 59 views
0

好吧,我是JavaScript新手,需要一些帮助。处理页面上的向前/向后按钮。本质上,url看起来像这样http://webaddress.com/details?id=27在Javascript中获取URL

所以,我的两个函数是为了提取url并转发到同一页面,当点击其中一个按钮时,根据需要递减或递增细节id。例如,当有人点击下一个按钮时,显示id=28;如果点击前一个,则显示id=26

我认为它就像子字符串,我已经看到它在某个地方做过,但不知道如何完成。

我需要如何接近它的想法。 任何帮助将不胜感激。

更新:我正在使用@ gion_13的代码,但看起来像我想念的东西。它似乎没有工作。任何其他帮助将不胜感激。

回答

0
function parseUrl(){ 
    if(location.href.indexOf('?') == -1) 
     return null; 
    var aux = location.href.split('?'); 
    var result = { 
     'href' : aux[0], 
     'params' : {} 
    }; 
    var p = aux[1].split('&'); 
    for(var i=0,l=p.length;i++) 
     { 
      var kv = p[i].split('='); 
      params[kv[0]] = kv[1]; 
     }   
    return result; 
} 

function reconstructUrl(obj){ 
    if(!obj) 
     return location; 
    var url = obj.href + '?'; 
    for(var i in obj.params) 
     url += i + '=' + obj.params[i] + '&'; 
    return encodeURI(url); 
} 

function getNextUrl(){ 
    var urlObj = parseUrl(); 
    urlObj.id++; 
    return reconstructUrl(urlObj); 
} 

function getPrevUrl(){ 
    var urlObj = parseUrl(); 
    urlObj.id--; 
    return reconstructUrl(urlObj); 
} 
+0

非常感谢此代码。我很感激它 - 我刚刚添加了并且没有任何工作。有什么我失踪了。再次感谢你的帮助。 –

+0

虽然代码对我来说不起作用,但它给了我一些思考和适应我需要的东西。再次感谢。 –

+0

好吧,我还没有测试过,但主要想法就在那里。为了让它在你的情况下工作,你应该写这样的东西:'' –

0

要访问的页面的URL,使用document.URL,例如:

document.write(document.URL); 

然后,您可以修改URL并打开新的URL。

有关大量提示和提示,请参见JavaScript HTML DOM Examples

1
  1. 读取URL作为var url = document.location.href
  2. 使用正则表达式的indexOf或 “=” 或document.location.search找到当前页面没有
  3. 解析为int和+/-页码
  4. 重建该网址
  5. document.location.replace(newurl)
+0

我打算回答这个问题,但你在2分钟内击败了我! ;) –

+0

NP,下次尝试,并更快:) – hungryMind

+0

@hungryMind - 感谢提示,将看到的是工作。 –

0

如果需要,您可以不使用Javascript。我认为使用PHP更高效,因为即使某些用户禁用Javascript,它也可以工作。

你可以尝试得到一个这样的ID:

<?php $my_id = $_GET['id']; ?> 
+0

谢谢,但你看过这个问题吗?你的代码看起来很平凡。 –