2012-09-16 93 views
0

我想創建一個運行javascript的書籤。 它將從我使用的遊戲論壇獲取一部分網址,並將用戶帶到其編輯頁面。如何獲取URL的一部分並將用戶重定向到包含該URL部分的URL?

的文章的網址可能是這樣的 - 例如http://www.roblox.com/Forum/ShowPost.aspx?PostID=78212279

你看到帖子ID位?我想獲得該號碼,並將用戶重定向到: http://www.roblox.com/Forum/EditPost.aspx?PostID=[NUMBER GOES HERE]

所以我想獲得一部分網址並將其放入PostID中。

任何人都可以幫忙嗎?

回答

0

使用javascript:

document.location = document.location.href.replace('ShowPost', 'EditPost'); 
+0

謝謝!我所需要的就是這個。 –

0

這裏是你的書籤:

<a href="javascript:location.href='EditPost.aspx'+location.search" onclick="alert('Drag this to your bookmarks bar');">Edit Post</a> 
0

一個URL的查詢字符串是通過window.location.search可用。所以,如果你的頁面http://www.roblox.com/Forum/ShowPost.aspx?PostID=78212279

var query = location.search; // ?PostID=78212279 

現在我們需要的查詢字符串分割成鍵值對的。每個鍵值對由&分隔,並且一對中的每個鍵和值由=定界。我們還需要考慮到鍵值對在查詢字符串中也被編碼。下面是一個會照顧所有這一切對我們來說並返回一個對象,其屬性代表在查詢字符串的鍵值對的函數

function getQueryString() { 
    var result = {}, 
     query= location.search.substr(1).split('&'), 
     len = query.length, 
     keyValue = []; 

    while (len--) { 
     keyValue = query[len].split('='); 

     if (keyValue[1].length) { 
      result[decodeURIComponent(keyValue[0])] = decodeURIComponent(keyValue[1]); 
     } 
    } 
    return result; 
} 
現在用這個有問題的網頁上

,我們可以得到在PostID查詢字符串

var query = getQueryString(); 

query.PostID; // 78212279 
0

您可以使用正則表達式。

var re = /^https?:\/\/.+?\?.*?PostID=(\d+)/; 

function getPostId(url) { 
    var matches = re.exec(url); 
    return matches ? matches[1] : null; 
} 

DEMO