Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从url解析主机,但不包含子域等_Javascript_Url_Google Chrome Extension - Fatal编程技术网

Javascript 从url解析主机,但不包含子域等

Javascript 从url解析主机,但不包含子域等,javascript,url,google-chrome-extension,Javascript,Url,Google Chrome Extension,我正在开发一个chrome扩展,它从window.location.hostname读取域。现在,为了让这个扩展正常工作,我需要能够将子域和其他url变体分离到同一主机。例如: 我需要以下所有url:s www.google.com accounts.google.com photos.google.se example.google.co.uk https://google.com 所有这些都需要以一种可靠的方式解决,在本例中是“谷歌”,并将适用于任何有时具有古怪子域配置的网站 这是我目前的

我正在开发一个chrome扩展,它从
window.location.hostname
读取域。现在,为了让这个扩展正常工作,我需要能够将子域和其他url变体分离到同一主机。例如:

我需要以下所有url:s

www.google.com
accounts.google.com
photos.google.se
example.google.co.uk
https://google.com
所有这些都需要以一种可靠的方式解决,在本例中是“谷歌”,并将适用于任何有时具有古怪子域配置的网站

这是我目前的观点,有些简化:

var url = window.location.hostname.split(".") //returns an array of strings
for(i=0;i<url.length;i++){
if(url[i].match(domainregex) //regex for identifying domains ".com",".se",".co.uk" etc
return url[i-1]  //usually what I'm after is directly before the domain, thus i-1
}
var url=window.location.hostname.split(“.”//返回字符串数组

对于(i=0;i来说,剥离顶级域部分并获取主域部分的更可靠解决方案是使用Firefox、Chrome和其他浏览器使用的


如果您不想自己编写,可以使用列表中的数据。

剥离顶级域部分并获取主域部分的更可靠解决方案是使用Firefox、Chrome和其他浏览器使用的


如果您不想自己编写,则可以使用列表中的数据。

我必须为我的“编辑我的cookie”分支执行此操作,因此它将能够更改每个站点的cookie配置文件。()

这就是我所做的,它对我很有效。我确信如果它不能完全解决问题,但我确信它会有所帮助

var remove_sub_domain=function(v){
    var is_co=v.match(/\.co\./)
    v=v.split('.')
    v=v.slice(is_co ? -3: -2)
    v=v.join('.')
    console.log(v)
    return v
}
它的工作目标是:

www.google.com
accounts.google.com
photos.google.se
example.google.co.uk
google.com
如果您希望它也适用于:

http://gooogle.com
您首先需要删除协议:

parser=document.createElement('a');
parser.href=url;
host=parser.host;
newurl=remove_sub_domain(host);

我必须为我的“编辑我的Cookie”分支做这件事,这样它才能更改每个站点的Cookie配置文件。()

这就是我所做的,它对我很有效。我确信如果它不能完全解决问题,但我确信它会有所帮助

var remove_sub_domain=function(v){
    var is_co=v.match(/\.co\./)
    v=v.split('.')
    v=v.slice(is_co ? -3: -2)
    v=v.join('.')
    console.log(v)
    return v
}
它的工作目标是:

www.google.com
accounts.google.com
photos.google.se
example.google.co.uk
google.com
如果您希望它也适用于:

http://gooogle.com
您首先需要删除协议:

parser=document.createElement('a');
parser.href=url;
host=parser.host;
newurl=remove_sub_domain(host);

你也可以利用一些现有的工具。这一个似乎很好用:你也可以利用一些现有的工具。这一个似乎很好用: