0

我想创建一个运行 javascript 的书签。它将从我使用的游戏论坛中获取 URL 的一部分,并将用户带到它的编辑页面。

例如,帖子的网址可能是这样的 - http://www.roblox.com/Forum/ShowPost.aspx?PostID=78212279

你看到 PostID 位了吗?我想获取该号码并将用户重定向到此:http://www.roblox.com/Forum/EditPost.aspx?PostID=[NUMBER GOES HERE]

所以我想获取一部分url并将其放入PostID中。

有人能帮忙吗?

4

4 回答 4

0

使用 Javascript:

document.location = document.location.href.replace('ShowPost', 'EditPost');
于 2012-09-16T09:17:40.197 回答
0

这是您的书签:

<a href="javascript:location.href='EditPost.aspx'+location.search" onclick="alert('Drag this to your bookmarks bar');">Edit Post</a>
于 2012-09-16T09:19:11.470 回答
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
于 2012-09-16T09:19:45.420 回答
0

您可以使用正则表达式。

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

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

演示

于 2012-09-16T09:21:56.023 回答