location.hash
has a better support than the history.pushState
method.
The advantage of the pushState
method is that you can bind a state to the history entry.
If you don't need this state object, I recommend to use the location.hash
property, to have better compatibility with older browsers.
location.hash = 'new-hash';
console.log(history.state); // null or undefined
history.pushState({extraData: "some state info"}, '', 'new-hash'); //<---
console.log(history.state); // [object Object] = {"extraData": "some state info"}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…