在Javascript中获取URL

时间:2011-09-29 11:54:45

标签: javascript html

好的,我是JavaScript的新手,需要一些帮助。处理页面上的前进/后退按钮。从本质上讲,网址看起来像http://webaddress.com/details?id=27

因此,我的两个函数用于提取url并转发到同一页面,当单击其中一个按钮时,根据需要递减或递增详细信息id。例如,当有人点击下一个按钮时,会显示id=28;如果单击了上一个,则显示id=26

我认为这就像子串一样,我之前已经看过它,但不知道是怎么做的。

我需要了解如何处理它。 任何帮助将不胜感激。

更新:我在下面使用@ gion_13的代码,但看起来我很想念。它似乎不起作用。任何其他帮助将不胜感激。

6 个答案:

答案 0 :(得分:2)

您可以使用location.href来获取或设置网址。

http://developer.mozilla.org/en/window.location

使用exec提取标识符。

extracted_id = /id=([0-9]+)$/.exec(location.href)[1]

http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/exec

答案 1 :(得分:1)

  1. 将网址读作var url = document.location.href
  2. 使用regEx或indexOf“=”或document.location.search查找当前页面否
  3. 解析为int和+/-页码
  4. 重建网址
  5. document.location.replace(NEWURL)

答案 2 :(得分:0)

window.location对象包含您需要的网址信息。你可以使用正则表达式解析它。以下是一些参考文献:

答案 3 :(得分:0)

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

document.write(document.URL);

然后,您可以修改网址并打开新网址。

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

答案 4 :(得分: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);
}

答案 5 :(得分:0)

如果需要,您可以在没有Javascript的情况下执行此操作。我认为使用PHP会更有效,因为即使某些用户禁用了Javascript,它也能正常工作。

您可以尝试获取这样的ID:

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