Baseline Widely available
History API éè¿ history
å
¨å±å¯¹è±¡æä¾äºå¯¹æµè§å¨ä¼è¯çåå²è®°å½ï¼ä¸è¦ä¸ WebExtensions ç history æ··æ·ï¼ç访é®åè½ã宿´é²äºå¾å¤æç¨çæ¹æ³å屿§ï¼ä½¿ä½ å¯ä»¥å¨ç¨æ·çåå²è®°å½ä¸æ¥å导èªï¼èä¸å¯ä»¥æä½åå²è®°å½æ ä¸çå
容ã
夿³¨ï¼ 该 API ä»
å¨ä¸»çº¿ç¨ï¼Window
ï¼ä¸å¯ç¨ãæ æ³å¨ Worker
æ Worklet
ä¸ä¸æä¸è®¿é®å®ã
ä½¿ç¨ back()
ãforward()
å go()
æ¹æ³å¯ä»¥å¨ç¨æ·åå²è®°å½ä¸åå跳转ã
å¨åå²è®°å½ä¸åå跳转ï¼
è¿åç¨æ·ç¹å»æµè§å¨çåéï¼Backï¼æé®çææç¸åã
类似å°ï¼ä½ å¯ä»¥åå跳转ï¼å¦åç¨æ·ç¹å»äºåè¿ï¼Forwardï¼æé®ï¼ï¼
跳转å°åå²è®°å½ä¸çæå®ä½ç½®ä½ å¯ä»¥ç¨ go()
æ¹æ³ä»ä¼è¯åå²è®°å½ä¸å è½½æä¸ç¹å®é¡µé¢ï¼è¯¥é¡µé¢ä½¿ç¨ä¸å½å页é¢çç¸å¯¹ä½ç½®æ¥æ è¯ï¼å½å页é¢çç¸å¯¹ä½ç½®ä¸º 0
ï¼ã
åå跳转ä¸ä¸ªé¡µé¢ï¼çä»·äºè°ç¨ back()
ï¼ï¼
åå跳转ä¸ä¸ªé¡µé¢ï¼å°±åè°ç¨ forward()
ï¼
类似å°ï¼ä½ å¯ä»¥ä¼ éåæ°å¼ 2
å¹¶åå跳转 2 个页é¢ï¼ççã
go()
æ¹æ³çå¦ä¸ä¸ªç¨éæ¯ï¼å¨è°ç¨å®æ¶ä¼ é 0
æä¸ä¼ éä»»ä½åæ°ä»¥å·æ°å½å页é¢ï¼
// 以ä¸è¯å¥é½å
·æå·æ°é¡µé¢çææ
history.go(0);
history.go();
ä½ å¯ä»¥éè¿æ¥ç length
屿§ç弿¥ç¡®å®åå²è®°å½æ ä¸ç页颿°éï¼
const numberOfEntries = history.length;
æ¥å£
History
å 许æä½æµè§å¨ä¼è¯çåå²è®°å½ï¼å³å è½½äºå½å页é¢çæ ç¾é¡µææ¡æ¶ï¼frameï¼ä¸è®¿é®è¿ç页é¢ï¼ã
PopStateEvent
popstate
äºä»¶çæ¥å£ã
以ä¸ç¤ºä¾ä¸º popstate
äºä»¶åé
äºä¸ä¸ªçå¬å¨ãç¶å宿¼ç¤ºäºä¸äº history å¯¹è±¡çæ¹æ³ï¼å¯¹å½åæ ç¾é¡µæµè§è®°å½çæ·»å ãæ¿æ¢å跳转ã
window.addEventListener("popstate", (event) => {
alert(`ä½ç½®ï¼${document.location}ï¼ç¶æï¼${JSON.stringify(event.state)}`);
});
history.pushState({ page: 1 }, "æ é¢ 1", "?page=1");
history.pushState({ page: 2 }, "æ é¢ 2", "?page=2");
history.replaceState({ page: 3 }, "æ é¢ 3", "?page=3");
history.back(); // æ¾ç¤ºè¦åâä½ç½®ï¼http://example.com/example.html?page=1ï¼ç¶æï¼{"page":1}â
history.back(); // æ¾ç¤ºè¦åâä½ç½®ï¼http://example.com/example.htmlï¼ç¶æï¼nullâ
history.go(2); // æ¾ç¤ºè¦åâä½ç½®ï¼http://example.com/example.html?page=3ï¼ç¶æï¼{"page":3}â
è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4