我是JS的新手,知道以下两个if语句条件之间的区别是非常有用的......
第一个条件(实际上没有工作):
if ( window.location.pathname == '/#register' ) {
// Code
}
第二个条件:
if (document.URL.indexOf("#register") >= 0) {
// Code...
}
仅供参考,这可以帮助我解决我遇到的here
错误答案 0 :(得分:6)
首先检查完全匹配。并且它在路径名上执行,它不包含哈希值,因此它可能无法执行您想要的操作。
第二个检查包含"#register"
的字符串,因此完整路径可能更大,例如/#register_or_not
或/some/other/path#register
可能你最好的选择是在URL上进行正则表达式模式匹配,以确保它匹配的哈希只是'注册',同时允许URL的其余部分为:
if (document.URL.match(/.*#register$/)) {
答案 1 :(得分:2)
第二个只是检查网址是否包含#register,第一个网址路径,你也可以使用location.hash
if(location.hash=='#register') { //....
答案 2 :(得分:1)
第一个在window.location.pathname
和/#register
之间执行完全匹配。第二个在#register
中的任何位置查找document.URL
。
答案 3 :(得分:1)
这个if块检查字符串是否相等
if ( window.location.pathname == '/#register' ) {
// Code
}
indexOf()方法返回字符串中第一次出现指定值的位置。
如果要搜索的值永远不会发生,则此方法返回-1。
if (document.URL.indexOf("#register") >= 0) {
// Code...
}