javascript - Chrome 扩展 : Get Parameter from URL

标签 javascript url google-chrome google-chrome-extension url-parameters

<分区>

Possible Duplicate:
Get query string values in JavaScript

我正在为 Chrome 开发一个扩展程序。 我已经想出如何从实际的 Chrome-Tab 获取 URL。

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

但现在我需要知道如何从 URL 中获取特定参数。 我已经尝试过不同的 Javascript 函数,但是当我实现它们时,我的扩展停止工作。

所以: 如何从实际 URL 中获取特定参数?

最佳答案

要在单个正则表达式中获取查询字符串,请使用:

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"

关于javascript - Chrome 扩展 : Get Parameter from URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11773190/

相关文章:

http - URL 路径中的资源是否有自己的 IP 地址?

javascript - 后期操作不起作用,需要帮助将信息从 View 传递到 Controller

javascript - 用于嵌套 div 的 Jquery .animate

javascript - PHP 不调用 jQuery 函数

regex - Dart 从 URL 字符串中提取主机

http - chrome进程(选项卡)的最大内存使用量以及如何增加它?

javascript - canvas.toDataURL() 和 drawImage() 的安全错误

javascript - 新窗口弹出窗口在 Chrome 中为空白,但在 IE 和 Firefox 中有效

javascript - 如何在 JavaScript 中将字符串转换为函数?

javascript - jquery中如何提取多维数组?