chi*_*cal 296 javascript
您何时设置locationURL字符串而不是设置location.href?
location = "http://www.stackoverflow.com";
Run Code Online (Sandbox Code Playgroud)
VS
location.href = "http://www.stackoverflow.com";
Run Code Online (Sandbox Code Playgroud)
bob*_*nce 249
您可以location直接设置,因为它稍短.如果你想要简洁,你通常也可以省略window..
两者的URL分配location.href和location定义为在JavaScript 1.0中运行,在Netscape 2中,并且已经在每个浏览器中实现.因此,请选择并使用您认为最清楚的选项.
psy*_*tik 147
即使两者都有效,我也会使用后者.
location是一个对象,并且为对象分配字符串对于可读性或维护而言并不是好兆头.
小智 66
就像已经说过的那样,.location是一个对象但那个人建议使用其中之一. 但是,您最好使用该.href版本.
对象具有默认属性,如果没有指定其他内容,则假定它们.在location对象的情况下,它具有一个名为的属性.href.并且通过在赋值期间不指定任何属性,默认情况下它将采用"href".
这一切都很好,直到后来的对象模型版本发生更改,并且不再是默认属性,或者更改了默认属性.然后你的程序意外中断.
如果您的意思是href,您应该指定href.
Dov*_*etz 20
几年前,location在IE中并location.href没有为我工作(并且都在其他浏览器中工作).从那时起,我一直在使用location.href,再也没有遇到过麻烦.我不记得是哪个版本的IE.
Cha*_*ams 15
只是为了澄清,你做不到location.split('#'),location是一个对象,而不是一个字符串.但你可以做,location.href.split('#');因为location.href是一个字符串.
Gra*_*ble 15
但要记住一个区别.
假设您想使用当前URL构建一些URL.以下代码实际上会重定向您,因为它不是在调用,String.replace而是Location.replace:
nextUrl = window.location.replace('/step1', '/step2');
Run Code Online (Sandbox Code Playgroud)
以下代码有效:
// cast to string
nextUrl = (window.location+'').replace('/step1', '/step2');
// href property
nextUrl = window.location.href.replace('/step1', '/step2');
Run Code Online (Sandbox Code Playgroud)
在 TypeScript 中,window.location.href按原样使用window.location技术上是一个包含以下内容的对象:
Properties
hash
host
hostname
href <--- you need this
pathname (relative to the host)
port
protocol
search
Run Code Online (Sandbox Code Playgroud)
设置window.location会产生类型错误,而
window.location.href类型是字符串。
| 归档时间: |
|
| 查看次数: |
233165 次 |
| 最近记录: |