--- title: window.onhashchange slug: Web/API/Window/onhashchange tags: - HTML-DOM - Property - Reference - WindowEventHandlers translation_of: Web/API/WindowEventHandlers/onhashchange ---
{{APIRef("HTML DOM")}}
当 一个窗口的 hash (URL 中 # 后面的部分)改变时就会触发 hashchange 事件(参见 {{domxref("Window.location", "location.hash")}})。
window.onhashchange = funcRef;
或者
<body onhashchange="funcRef();">
以上操作将覆盖现有的事件处理程序。
为了添加一个新的事件处理程序,而不覆盖掉已有的其他事件处理程序,可以使用函数 "addEventListener"。
window.addEventListener("hashchange", funcRef, false);
funcRef
if ("onhashchange" in window) { alert("该浏览器支持 hashchange 事件!"); } function locationHashChanged() { if (location.hash === "#somecoolfeature") { somecoolfeature(); } } window.onhashchange = locationHashChanged;
hashchange
事件对象有下面两个属性:
属性 | 类型 | 描述 |
newURL {{ gecko_minversion_inline("6.0") }} |
DOMString |
当前页面新的URL |
oldURL {{ gecko_minversion_inline("6.0") }} |
DOMString |
当前页面旧的URL |
//let this snippet run before your hashchange event binding code if(!window.HashChangeEvent)(function(){ var lastURL=document.URL; window.addEventListener("hashchange",function(event){ Object.defineProperty(event,"oldURL",{enumerable:true,configurable:true,value:lastURL}); Object.defineProperty(event,"newURL",{enumerable:true,configurable:true,value:document.URL}); lastURL=document.URL; }); }());
Specification | Status | Comment |
---|---|---|
{{SpecName('HTML WHATWG', '#windoweventhandlers', 'GlobalEventHandlers')}} | {{Spec2('HTML WHATWG')}} | |
{{SpecName('HTML5.1', '#windoweventhandlers', 'GlobalEventHandlers')}} | {{Spec2('HTML5.1')}} | |
{{SpecName("HTML5 W3C", "#windoweventhandlers", "GlobalEventHandlers")}} | {{Spec2('HTML5 W3C')}} |
{{Compat("api.WindowEventHandlers.onhashchange")}}