【发布时间】:2011-01-17 18:23:18
【问题描述】:
我正在托管一个网络浏览器控件,它通常会加载外部文档,然后使用 HTML DOM 进行一些修改。
我们还使用虚假协议嵌入自定义应用程序链接,例如在BeforeNavigate2 中捕获和处理的“关闭此”。
当链接目标拼写错误时(例如,“spp:CloseWindow”),BeforeNavigate 不会触发自定义处理。浏览器控件不显示导航错误,但仍处于 READYSTATE_INTERACTIVE 且不会触发 NavigateComplete 或 DocumentComplete。
我的问题:
大多数操作(例如检索或更新内容)都会延迟并等待就绪状态达到READYSTATE_COMPLETE。单击此类无效链接后,浏览器将不再更新-我想避免这种状态。
我该怎么做?
- 我能否在“DownloadComplete”中检测到导航失败?
(所以我可以将测试放宽到
"READYSTATE_COMPLETE或READYSTATE_INTERACTIVE and last downloadComplete was broken") - 我可以将浏览器控件“重置”为 READYSTATE_COMPLETE(可能不行)
- 能否检测到浏览器实际支持的伪协议?
(事后看来,使用 xxxx: 前缀并不是一个好主意,但现在改变它有点问题。)
【问题讨论】: