我想创建一个运行javascript的书签。 它将从我使用的游戏论坛获取URL的一部分,并将用户带到其编辑页面。
帖子的网址可能是这样的,例如 - http://www.roblox.com/Forum/ShowPost.aspx?PostID=78212279
你看到PostID位了吗?我想获取该号码并将用户重定向到此: http://www.roblox.com/Forum/EditPost.aspx?PostID=[NUMBER GOES HERE]
所以我想获取网址的一部分并将其放在PostID中。
任何人都可以帮忙吗?
答案 0 :(得分:0)
使用Javascript:
document.location = document.location.href.replace('ShowPost', 'EditPost');
答案 1 :(得分:0)
这是您的书签:
<a href="javascript:location.href='EditPost.aspx'+location.search" onclick="alert('Drag this to your bookmarks bar');">Edit Post</a>
答案 2 :(得分:0)
网址的查询字符串可通过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
答案 3 :(得分:0)
您可以使用正则表达式。
var re = /^https?:\/\/.+?\?.*?PostID=(\d+)/;
function getPostId(url) {
var matches = re.exec(url);
return matches ? matches[1] : null;
}
<强> DEMO 强>