0

javascriptを実行するブックマークを作成したい。私が使用しているゲームのフォーラムからURLの一部を取得し、ユーザーをその編集ページに移動します。

投稿の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 に答える