WindowEventHandlers.onpopstate
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since â¨2015å¹´7æâ©.
WindowEventHandlers æ··å
¥ï¼mixinï¼ä¸ç onpopstate 屿§æ¯ç¨äºå¤ç window 对象ä¸ç popstate äºä»¶çäºä»¶å¤çç¨åºã
æ¯å½æ¿æ´»åä¸ææ¡£ä¸ä¸åçåå²è®°å½æ¡ç®æ¶ï¼popstate äºä»¶å°±ä¼å¨å¯¹åºç window 对象ä¸è§¦åã妿å½åå¤äºæ¿æ´»ç¶æçåå²è®°å½æ¡ç®æ¯ç± history.pushState() æ¹æ³å建çæè
æ¯ç± history.replaceState() æ¹æ³ä¿®æ¹çï¼å popstate äºä»¶ç state 屿§å
å«äºè¿ä¸ªåå²è®°å½æ¡ç®ç state 对象çä¸ä¸ªæ·è´ã
夿³¨ï¼è°ç¨ history.pushState() æè
history.replaceState() ä¸ä¼è§¦å popstate äºä»¶ãpopstate äºä»¶åªä¼å¨æµè§å¨æäºè¡ä¸ºä¸è§¦åï¼æ¯å¦ç¹å»åéæé®ï¼æè
å¨ JavaScript ä¸è°ç¨ history.back() æ¹æ³ï¼ãå³ï¼å¨åä¸ææ¡£ç两个åå²è®°å½æ¡ç®ä¹é´å¯¼èªä¼è§¦å该äºä»¶ã
è¯æ³
window.onpopstate = funcRef;
funcRefæ¯ä¸ä¸ªå¤ç彿°ã
示ä¾
åå¦å½åç½é¡µå°å为 http://example.com/example.htmlï¼åè¿è¡ä¸è¿°ä»£ç å°è§¦åè¦åå¯¹è¯æ¡ï¼
window.onpopstate = function (event) {
alert(
"location: " +
document.location +
", state: " +
JSON.stringify(event.state),
);
};
history.pushState({ page: 1 }, "title 1", "?page=1");
history.pushState({ page: 2 }, "title 2", "?page=2");
history.replaceState({ page: 3 }, "title 3", "?page=3");
history.back(); // å¼¹åº "location: http://example.com/example.html?page=1, state: {"page":1}"
history.back(); // å¼¹åº "location: http://example.com/example.html, state: null
history.go(2); // å¼¹åº "location: http://example.com/example.html?page=3, state: {"page":3}
注æï¼å³ä¾¿æ¯æ²¡æå
³è state 对象çåå§çå岿¡ç®ï¼æ¯å¦ http://example.com/example.htmlï¼ï¼popstate äºä»¶ä¹ä»ä¼å¨æä»¬ç¬¬äºæ¬¡è°ç¨ history.back()ï¼æ¿æ´»è¿ä¸å岿¡ç®å触åã
è§è
| Specification |
|---|
| HTML > # event-popstate > |
| HTML > # handler-window-onpopstate > |