Я размещаю веб-браузер, который обычно загружает внешние документы, а затем вносит некоторые изменения, используя HTML DOM.
Мы также встраиваем пользовательские ссылки приложений, используя поддельный протокол, такой как «Close This», который перехватывается и обрабатывается в BeforeNavigate2
.
Когда ссылка на ссылку введена с ошибкой (скажем, "spp: CloseWindow"), BeforeNavigate не будет запускать пользовательскую обработку. Элемент управления Browser не отображает ошибку navigaiton, но остается в READYSTATE_INTERACTIVE и не вызывает NavigateComplete
или DocumentComplete
.
Моя проблема:
Большинство операций (например, получение или обновление содержимого) задерживаются и ожидают, когда состояние готовности достигнет READYSTATE_COMPLETE
. После нажатия на такую недействительную ссылку браузер больше не обновляется - состояние, которое я бы хотел избежать.
Как я могу это сделать?
- Могу ли я обнаружить в "DownloadComplete", что навигация не удалась?
(Чтобы я мог расслабить тест до
"READYSTATE_COMPLETE
или READYSTATE_INTERACTIVE and last downloadComplete was broken
")
- Могу ли я "сбросить" элемент управления браузера на READYSTATE_COMPLETE (вероятно, нет)
- Могу ли я обнаружить псевдопротоколы, фактически поддерживаемые браузером?
(Оглядываясь назад, использование префикса xxxx:
было не очень хорошей идеей, но изменить это сейчас - небольшая проблема.)