location.hostname 部分网页不准确
location.hostname of some web pages is not accurate
我正在写一个小书签,它显示当前页面的 location.hostname
。
在大多数网站上,这工作正常,即对于 https://whosebug.com/questions/ask 它 returns http://whosebug.com
.
但在某些网站上它不起作用。例如,在 http://techslides.com/over-2000-d3-js-examples-and-demos 它 returns googleads.g.doubleclick.net
.
我发现我可以使用 location.ancestorOrigins[0]
获取 'original' 主机名 http://techslides.com
使用它,我编写了以下尝试在任何站点上获取准确的主机名:
function getHostname() {
var previous_hostnames = window.ancestorOrigins;
if (previous_hostnames) {
return previous_hostnames[0];
} else {
return window.hostname;
}
}
我在想:
- 为什么会这样?
- 我的方法是否合适?
可以假设我只是 运行 在 Chrome,如果它能让事情变得更容易的话。
Chrome 建造:
Version 52.0.2743.116 (64-bit)
Platform 8350.68.0 (Official Build) stable-channel orco
Firmware Google_Orco.5216.362.7
回复评论
location.host
或 location.origin
都行不通
location.host
"googleads.g.doubleclick.net"
location.origin
"https://googleads.g.doubleclick.net"
错误似乎是由我的 Chrome 扩展程序之一引起的(不确定是哪个,稍后会尝试确定)。
禁用所有扩展恢复正确 location.hostname
我正在写一个小书签,它显示当前页面的 location.hostname
。
在大多数网站上,这工作正常,即对于 https://whosebug.com/questions/ask 它 returns http://whosebug.com
.
但在某些网站上它不起作用。例如,在 http://techslides.com/over-2000-d3-js-examples-and-demos 它 returns googleads.g.doubleclick.net
.
我发现我可以使用 location.ancestorOrigins[0]
http://techslides.com
使用它,我编写了以下尝试在任何站点上获取准确的主机名:
function getHostname() {
var previous_hostnames = window.ancestorOrigins;
if (previous_hostnames) {
return previous_hostnames[0];
} else {
return window.hostname;
}
}
我在想:
- 为什么会这样?
- 我的方法是否合适?
可以假设我只是 运行 在 Chrome,如果它能让事情变得更容易的话。
Chrome 建造:
Version 52.0.2743.116 (64-bit)
Platform 8350.68.0 (Official Build) stable-channel orco
Firmware Google_Orco.5216.362.7
回复评论
location.host
或 location.origin
都行不通
location.host
"googleads.g.doubleclick.net"
location.origin
"https://googleads.g.doubleclick.net"
错误似乎是由我的 Chrome 扩展程序之一引起的(不确定是哪个,稍后会尝试确定)。
禁用所有扩展恢复正确 location.hostname