设置window.location.hash的潜在问题

Cam*_*ron 23 javascript rsh cross-browser

我有一些javascript代码,在某一点上,设置window.location.hash为一个特定的字符串.这在Firefox 3中工作正常,但我想知道我以后是否会遇到问题,即这是一个跨浏览器的解决方案(包括IE6)?

另外,我使用的是ReallySimpleHistory.这会弄乱其内部状态吗?

谢谢

Nic*_*itz 25

window.location.hash 自1995年在Netscape Navigator 2中引入JavaScript以来,它已经存在.它于1996年首次由Microsoft在Internet Explorer 3中支持.我认为您可以合理地确定每个支持JS的浏览器都支持它.

从快速浏览源代码看,ReallySimpleHistory看起来好像广泛使用了这个属性,所以你可能会破坏它.您可能希望使用其add(newLocation)方法(通过设置工作window.location.hash).


Thi*_*ker 15

得到:

 var hash = location.hash.slice(1);
Run Code Online (Sandbox Code Playgroud)

组:

 location.hash = '#' + 'string';
Run Code Online (Sandbox Code Playgroud)

  • 为什么不直接使用location.hash属性?这就是它的用途,并且自Netscape Navigator 2(1995)以来它一直存在,你可以打赌它在任何地方都受到支持. (5认同)

gin*_*man 10

我知道旧线程,但window.location.hash也受到大小限制.如果您传递大量数据,并希望在哈希中保存状态,则可能会遇到一些问题.

IE将为您提供错误: SCRIPT5 - Access denied.如果您尝试分配超出限制的哈希超级有用.

只是值得深思.