获取URL源和参数

时间:2017-12-08 19:35:25

标签: javascript google-chrome-extension

如何从我调用扩展名的选项卡中轻松提取原点和特定参数?

如果当前网址为:

https://base.com/etc/etc?param1=123

我想得到两个变量     origin =" https://base.com" 和     param1 =" 123"

理想情况下,如果有更多参数,这仍应有效,即 如果当前的URL是     https://base.com/etc/etc?param1=123&param2=234

我还是会得到的     origin =" https://base.com" 和     param1 =" 123"

我明白我可以使用像

这样的东西
chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {

但我正在学习Javascript懒散。这个函数怎么样?

1 个答案:

答案 0 :(得分:1)

The documentation for chrome.tabs.query表示在回调function (tabs)中,您将获得一个Tab数组。 Tab有很多属性,其中一个是url。所以你可以这样做:

// Get the current active tab in the last focused Chrome window (before the popup showed)
// should return only ONE tab
chrome.tabs.query({ active: true, lastFocusedWindow: true }, function (tabs) {
    if (!tabs[0]) { console.log('Could not get current tab'); return; }

    // Now extract the information from the URL
    let url = new URL(tabs[0].url);
    let base = url.protocol + '//' + url.hostname;
    let param1 = url.searchParams.get('param1');

    console.log(base);
    console.log(param1);
})