首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >location.host与location.hostname和跨浏览器的兼容性?

location.host与location.hostname和跨浏览器的兼容性?
EN

Stack Overflow用户
提问于 2011-07-18 02:34:19
回答 6查看 260.7K关注 0票数 433

与检查用户代理是否通过正确的域访问相比,其中哪一个是最有效的。

如果他们使用某种web代理访问域名,我们想要显示一个基于js的'top bar‘样式的警告(因为它倾向于破坏js)。

我们正在考虑使用以下内容:

代码语言:javascript
复制
var r = /.*domain\.com$/;
if (r.test(location.hostname)) {
    // showMessage ...
}

这将照顾到我们曾经使用过的任何子域。

我们应该使用主机还是主机名?

在Firefox 5和Chrome 12中:

代码语言:javascript
复制
console.log(location.host);
console.log(location.hostname);

。。这两种情况都显示相同。

这是因为端口实际上不在地址栏中吗?

W3Schools表示主机包含该端口。

是否应该验证location.host/hostname,或者我们是否可以非常确定它将在IE6+和所有其他系统中存在?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-07-08 08:35:55

作为一个小备忘录: the interactive link anatomy

--

简而言之(假设位置为http://example.org:8888/foo/bar#bang):

  • hostname给你example.org
  • host给你example.org:8888
票数 1.2K
EN

Stack Overflow用户

发布于 2011-07-18 02:37:25

主机只包含端口号(如果指定了端口号)。如果URL中没有指定的端口号,则它将返回与主机名相同的端口号。您可以选择是否要匹配端口号。有关详细信息,请参阅https://developer.mozilla.org/en/window.location

我假设您只想让hostname获取站点名称。

票数 73
EN

Stack Overflow用户

发布于 2014-03-15 21:01:14

如果您坚持使用window.location.origin,则可以在读取origin之前将此代码放在代码的顶部

代码语言:javascript
复制
if (!window.location.origin) {
  window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');
}

PS:根据记录,这实际上是最初的问题。它已经编辑过了:)

票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6725890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档