Chrome扩展:从URL获取参数[复制](Chrome Extension: Get Parame

2019-09-20 15:48发布

可能重复:
可以在javascript查询字符串值

我工作的一个Chrome扩展程序。 我已经想通了如何从实际铬选项卡上的网址。

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

但现在我需要知道如何从URL中的特定参数。 我已经尝试了不同的JavaScript函数,但是当我实现它们,我的分机停止工作。

所以:我怎样才能得到实际的URL的特定参数?

Answer 1:

要获得一个正则表达式的查询字符串,请使用:

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"


Answer 2:

不完全是一个正则表达式,但这应该工作:

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

这在大多数情况下工作。 我会设法寻找我为这个前一段时间写的正则表达式。



Answer 3:

创建简单的功能从以下网址获得URL参数在Javascript

..... 58E /网络/ viewer.html?页= 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");

OUTPUT:18



文章来源: Chrome Extension: Get Parameter from URL [duplicate]