1

我是 JS 的新手,知道以下两个 if 语句条件之间的区别是非常有用的......

第一个条件(实际上不工作):

if ( window.location.pathname == '/#register' ) {

// Code

}

第二个条件:

if (document.URL.indexOf("#register") >= 0) {

// Code...

}

仅供参考,这将帮助我解决我在这里遇到的错误

4

4 回答 4

6

第一个检查完全匹配。它在不包含哈希的路径名上执行此操作,因此它可能不会执行您想要的操作。

第二个检查字符串 contains "#register",因此完整路径可能更大,例如/#register_or_not/some/other/path#register

可能您最好的选择是对 URL 进行正则表达式模式匹配,以确保它匹配的散列仅是“注册”,同时允许 URL 的其余部分为任何内容:

if (document.URL.match(/.*#register$/)) {
于 2013-05-24T11:00:08.607 回答
2

第二个只是检查url是否包含#register,第一个是url路径,你也可以使用location.hash

if(location.hash=='#register') { //....
于 2013-05-24T11:01:43.257 回答
1

第一个在window.location.pathname和之间执行完全匹配/#register。第二个#register查找document.URL.

于 2013-05-24T11:01:32.037 回答
1

这个 if 块检查字符串是否相等

if ( window.location.pathname == '/#register' ) {

 // Code

}

indexOf() 方法返回指定值在字符串中第一次出现的位置。

如果要搜索的值从未出现,则此方法返回 -1。

if (document.URL.indexOf("#register") >= 0) {

   // Code...

}
于 2013-05-24T11:06:02.227 回答