1

重複の可能性:
JavaScript でクエリ文字列値を取得する

私はChromeの拡張機能に取り組んでいます。実際の Chrome-Tab から URL を取得する方法は既に理解しています。

chrome.tabs.getSelected(null, function(tab) {
  document.getElementById('currentLink').innerHTML = tab.url;
});

しかし今、URL から特定のパラメーターを取得する方法を知る必要があります。すでにさまざまな Javascript 関数を試しましたが、それらを実装すると、拡張機能が機能しなくなります。

では、実際の URL から特定のパラメータを取得するにはどうすればよいですか?

4

3 に答える 3

4

単一の正規表現でクエリ文字列を取得するには、次を使用します。

var queryString = /^[^#?]*(\?[^#]+|)/.exec(tab.url)[1];
// Explanation of RegEx:
// ^[^#?]*                          (\?[^#]+   | )
// <Starts with any non-#/? string><query string OR nothing>

次に、次の関数を使用して特定のキーの値を取得します。

function getParameterByName(queryString, name) {
    // Escape special RegExp characters
    name = name.replace(/[[^$.|?*+(){}\\]/g, '\\$&');
    // Create Regular expression
    var regex = new RegExp("(?:[?&]|^)" + name + "=([^&#]*)");
    // Attempt to get a match
    var results = regex.exec(queryString);
    return decodeURIComponent(results[1].replace(/\+/g, " ")) || '';
}

// Usage:
// Example: tab.url = "http://example.com/path?foo=bar&key_name=qs_value#"
var queryString = /\?[^#]+(?=#|$)|$/.exec(tab.url)[0];
var value = getParameterByName(queryString, 'qs_name');
// Result : value = "value";

// Example 2: Using the function to get a parameter from the current page's URL.
//  (e.g inside content script)
var value = getParameterByName(location.search, 'qs_name');
// Result : value = "value"
于 2012-08-02T09:49:59.873 に答える
0

このようなURLからJavascriptでURLパラメータを取得する簡単な関数を作成しました

.....58e/web/viewer.html?page= 17 &getinfo= 33

    function buildLinkb(param) {
        var val = document.URL;
        var url = val.substr(val.indexOf(param))  
        var n=parseInt(url.replace(param+"=",""));
        alert(n+1); 
    }
    buildLinkb("page");

出力: 18

于 2012-08-04T12:00:01.510 に答える
0

正確には正規表現ではありませんが、これは機能するはずです:

var queryString=url.match(/\?.+$)[0].split('#')[0]

ほとんどの場合、これでうまくいくはずです。しばらく前にこのために書いた正規表現を掘り下げてみます。

于 2012-08-02T09:31:38.857 に答える