document.location.href和document.location有什么区别?

Mic*_*hel 55 javascript

document.location.href和之间有什么区别document.location

跨浏览器是否相同?

bob*_*nce 63

document.locationwindow.locationJavaScript 的同义词,已经被弃用了几乎与JavaScript一直存在.不要使用它.

location是一个结构化对象,其属性对应于URL的各个部分.location.href是一个字符串中的整个URL.将字符串分配给任一字符串定义为导致相同类型的导航,因此请选择.

我认为写作location.href = something要稍微好一点,因为它对它正在做的事情略显明确.您通常希望避免location = something因为它看起来像变量赋值一样误导.window.location = something虽然很好.

  • `document.location`.它现在不再在HTML5中被弃用,因为它的价值. (5认同)
  • 是不推荐使用`document.location`还是`window.location`? (4认同)
  • 这个线程很古老,但是我想指出它们的意思是不同的,部分原因是“ window”对象可以包含多个文档。在浏览器中呈现的网页中,“ window.location”的值通常会匹配(可能是只读的)“ document,location.href”属性,但前者是“ window.location”。应该被认为是可变的并且适合触发导航。 (2认同)

Guf*_*ffa 26

document.location对象包含当前位置的属性.

href属性是这些属性之一,包含完整的URL,即所有其他属性放在一起.

某些浏览器允许您为location对象分配URL,并且就像将其分配给href属性一样.其他一些浏览器更挑剔,并要求您使用该href属性.因此,要使代码在所有浏览器中都有效,您必须使用该href属性.

无论是windowdocument对象有一个location对象.您可以使用window.location.href或设置URL document.location.href.但是,从逻辑上讲,document.location对象应该是只读的(因为您无法更改文档的URL;更改URL会加载新文档),因此为了安全起见,您应该window.location.href在需要设置URL时使用.


sli*_*ier 12

typeof document.location; // 'object'
typeof document.location.href; // 'string'
Run Code Online (Sandbox Code Playgroud)

href属性是一个字符串,而document.location它本身就是一个对象.


D. *_*ans 5

document.location是一个对象,document.location.href而是一个字符串.但是前者有一个toString方法,所以你可以从中读取它就好像它是一个字符串并获得相同的值document.location.href.

在某些浏览器中 - 我认为大多数现代浏览器 - 您也可以将其分配document.location为字符串.但是,根据Mozilla文档,最好将其window.location用于此目的,因为document.location它最初是只读的,因此可能不会得到广泛支持.