javascript - location.host vs location.hostname 和跨浏览器兼容性?

标签 javascript html window location host

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

如果他们正在使用某种网络代理访问域(因为它往往会破坏 js),我们希望显示一个基于 js 的小型“顶栏”样式警告。

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

var r = /.*domain\.com$/;
if (r.test(location.hostname)) {
    // showMessage ...
}

这将处理我们曾经使用的任何子域。

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

在 Firefox 5 和 Chrome 12 中:

console.log(location.host);
console.log(location.hostname);

.. 两者显示相同。

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

W3Schools表示主机包含端口。

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

最佳答案

interactive link anatomy

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

--

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

  • hostname 为您提供 example.org
  • host 为您提供 example.org:8888

关于javascript - location.host vs location.hostname 和跨浏览器兼容性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6725890/

相关文章:

javascript - 在 Javascript 中播放声音性能很重吗?

wpf - 将窗口继承到另一个窗口xaml

javascript - 使用 JQuery 创建父窗口对象的正确方法是什么

javascript - React 风格的组件在生产中导致构建错误,但在开发中运行良好

javascript - Microsoft Edge 不触发 HTML5 音频元数据

javascript - 如果包装器包含特定元素,则替换 HTML 标记

javascript - 从表单操作调用js函数,然后从js调用php

jquery - 在另一个父元素中选择一个元素

javascript - 如何获取参数名称?

android - 如何在没有状态栏和操作栏的情况下获取屏幕高度(像素)?