WebViewer导航到一个新的网页时,会按顺序触发以下导航事件:
| 触发顺序 | 事件名称 | 触发条件 |
|---|---|---|
| 1 | NavigationStarting | 导航即将开始(可取消导航,如拦截特定 URL) |
| 2 | NewWindowRequested(可选) | 仅当导航会打开一个新窗口才触发(如 window.open()、target="_blank"),可取消打开新窗口,改为在本地打开 |
| 3 | SourceChanged(可选) | Source属性发生变化 |
| 4 | ContentLoading | 浏览器开始加载页面内容(DOM 开始解析前),可在这里提前注入基础 JS |
| 5 | HistoryChanged(可选) | 浏览历史记录发生变化(可选,仅当导航会改变历史记录时才触发) |
| 6 | DOMContentLoaded | 页面 DOM 解析完成,可在此注入 JS、修改元素 |
| 7 | NavigationCompleted | 导航完成,任何导航结果(成功 / 失败 / 取消)都会触发,可通过 IsSuccess 判断是否加载成功 |
在上一节设计一个简单浏览器的时候,我们就已经接触过 HistoryChanged 和 NewWindowRequested 事件,我们接下来依次介绍上述事件。