window.location
是一个访问器属性,获取它的值会给你一个对象,而不是一个字符串,所以它没有indexOf
函数。(人们有时认为它是一个字符串是完全可以理解的,因为当你设置它的值时,访问器属性的设置器接受一个字符串;也就是说,它window.location = "some url";
确实有效。但是当你得到它时,你没有得到一个字符串。)
如果您愿意,可以使用window.location.toString()
,String(window.location)
或window.location.href
为它获取一个字符串,或者使用它的任何各种属性来检查细节。从链接中,给定示例 url http://www.example.com:80/search?q=devmo#test
:
hash
: URL 中 # 符号之后的部分,包括 # 符号。您可以侦听 hashchange 事件以获取支持浏览器中哈希更改的通知。
例子:#test
host
:主机名和端口号。
例子:www.example.com:80
hostname
: 主机名(不含端口号)。
例子:www.example.com
href
: 整个网址。
例子:http://www.example.com:80/search?q=devmo#test
pathname
: 路径(相对于主机)。
例子:/search
port
: URL 的端口号。
例子:80
protocol
: URL 的协议。
例子:http:
search
: URL 后面的部分?符号,包括 ? 象征。
例子:?q=devmo
例如,对于您引用的示例,您可以检查window.location.hostname === "localhost"
.