Controle WebBrowser: Detectar falha de navegação
Estou hospedando um controle webbrowser, que normalmente carrega documentos externos e faz algumas modificações usando HTML DOM.
Também incorporamos links de aplicativos personalizados usando um protocolo falso, como "Fechar isto", que são capturados e tratados emBeforeNavigate2
.
Quando o tarket do link estiver incorreto (digamos, "spp: CloseWindow"), o BeforeNavigate não acionará o tratamento personalizado. O controle do navegador não mostra um erro de navegação, mas permanece em READYSTATE_INTERACTIVE e não disparaNavigateComplete
ouDocumentComplete
.
Meu problema: a maioria das operações (por exemplo, recuperar ou atualizar o conteúdo) está atrasada e aguarda o estado de prontidãoREADYSTATE_COMPLETE
. Depois que um link inválido é clicado, o navegador não é mais atualizado - um estado que gostaria de evitar. Como eu posso fazer isso?
"READYSTATE_COMPLETE
ouREADYSTATE_INTERACTIVE and last downloadComplete was broken
")Posso "redefinir" o controle do navegador para READYSTATE_COMPLETE (provavelmente não)Eu poderia detectar os pseudoprotocols realmente suportados pelo navegador?(Em retrospectiva, usando umxxxx:
prefixo não foi uma boa idéia, mas mudar isso agora é um pouco problemático.)