2011-09-29 42 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

謝謝,但你看過這個問題嗎?你的代碼看起來很平凡。 –