ano*_*one 341 html javascript location host window
在检查用户代理是否通过正确的域访问时,哪一项最有效.
如果他们使用某种Web代理访问域名(因为它往往会打破js),我们希望显示一个基于小js的"顶栏"样式警告.
我们考虑使用以下内容:
var r = /.*domain\.com$/;
if (r.test(location.hostname)) {
// showMessage ...
}
Run Code Online (Sandbox Code Playgroud)
这将照顾我们曾经使用的任何子域.
我们应该使用哪个主机名或主机名?
在Firefox 5和Chrome 12中:
console.log(location.host);
console.log(location.hostname);
Run Code Online (Sandbox Code Playgroud)
..两者显示相同.
是因为端口实际上不在地址栏中吗?
W3Schools说主机包含端口.
应该验证location.host/hostname还是我们可以在IE6 +中确定其他所有其他内容?
abe*_*ier 988
作为一个小备忘录:交互式链接解剖
-
简而言之(假设位置http://example.org:8888/foo/bar#bang
):
hostname
给你 example.org
host
给你 example.org:8888
jfr*_*d00 69
如果有指定的端口号,则主机只包含端口号.如果URL中没有专门的端口号,则返回与hostname相同的端口号.您选择是否要匹配端口号.有关详细信息,请参阅https://developer.mozilla.org/en/window.location.
我想你想要主机名来获取网站名称.
Ken*_*nas 30
如果你坚持使用window.location.origin
你可以在阅读之前把它放在你的代码之上origin
if (!window.location.origin) {
window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');
}
Run Code Online (Sandbox Code Playgroud)
PS:为了记录,它实际上是原始问题.他们可能已经编辑过了.:)
blu*_*oon 10
您的主要问题已在上面得到解答.我只是想指出你正在使用的正则表达式有一个错误.它也将成功,foo-domain.com
而不是它的子域domain.com
你真正想要的是这个:
/(^|\.)domain\.com$/
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
216052 次 |
最近记录: |