hashchange
4081 ワード
hashchange
イベントは、ページURLのセグメント識別子(最初の番号から末尾までのすべての文字、番号を含む)が変更するとトリガーされる.共通情報
きかく
HTML5
インタフェース
HashChangeEvent
泡が立つかどうか
はい
デフォルトの動作をキャンセルできますか?
できません
ターゲット
defaultView
デフォルトの動作
なし
ツールバーの
Property
Type
Description
target
Read only EventTarget
The browsing context (
window
). type
Read only DOMString
The type of event.
canBubble
Read only boolean
Does the event normally bubble?
cancelable
Read only boolean
Is it possible to cancel the event?
oldURL
string
The previous URL from which the window was navigated. Read only
newURL
string
The new URL to which the window is navigating. Read only
ブラウザの互換性
Desktop
Feature
Chrome
Firefox (Gecko)
Internet Explorer
Opera
Safari
Basic support
5.0
3.6 (1.9.2)Support for the
oldURL
/newURL
attributes added in Firefox 6. 8.0
10.6
5.0
このページにはJavaScriptでこのイベントをシミュレートするスクリプトがいくつかありますが、原理は基本的に一定時間おきにlocationを検出します.hashが変化するか否か.次の実装は
windowで である.onhashchange
プロパティにイベント処理関数をバインドするには、次の手順に従います.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
(
function
(window) {
// ,
if
(
"onhashchange"
in
window.document.body ) {
return
; }
var
location = window.location,
oldURL = location.href,
oldHash = location.hash;
// 100ms location.hash
setInterval(
function
() {
var
newURL = location.href,
newHash = location.hash;
// hash , ...
if
( newHash != oldHash &&
typeof
window.onhashchange ===
"function"
) {
// execute the handler
window.onhashchange({
type:
"hashchange"
,
oldURL: oldURL,
newURL: newURL
});
oldURL = newURL;
oldHash = newHash;
}
}, 100);
})(window);
関連イベント