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  
  • Mobile

  • 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);
    関連イベント
  • popstate