Artigo: 294870 - Última revisão: quinta-feira, 11 de Maio de 2006 - Revisão: 3.0

Erro: Utilizar novajanela ou NewWindow2 sempre navegar na mesma janela falha em algumas instâncias

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sintomas

Quando hospedar o controlo WebBrowser, poderá pretender navegação ocorrem sempre na mesma janela. Neste caso, pode processar a notificação novajanela ou NewWindow2 para cancelar a navegação. No entanto, os eventos novajanela e NewWindow2 nem sempre funciona como previsto.

Sintomas no Internet Explorer 5.5

Quando utiliza o evento novajanela no Internet Explorer 5.5, poderá encontrar os seguintes problemas:
  • Se clicar numa hiperligação que efectua um método window.open para procurar um novo site, com êxito pode navegar para a hora de site a primeira; no entanto, falhar pela segunda vez.
  • Se clicar com o botão direito do rato uma hiperligação e, em seguida, clique em Abrir numa nova janela , funciona na primeira vez mas não funciona nas tentativas subsequentes.
Quando utiliza o evento NewWindow2 no Internet Explorer 5.5, poderá encontrar os seguintes problemas:
  • Se clicar numa hiperligação que efectua um método window.open para procurar um novo site, receberá uma mensagem de erro "erro não especificado".
  • Se clique com o botão direito do rato numa hiperligação e, em seguida, clique em Abrir numa nova janela , não navegue sequer.

Sintomas no Internet Explorer 5

novajanela funciona conforme esperado no Internet Explorer 5, quando clica numa hiperligação que efectua um método window.open para procurar um novo site ou quando o clique com o botão direito do rato numa hiperligação e, em seguida, clique em Abrir numa nova janela .

No entanto, quando utiliza NewWindow2 no Internet Explorer 5, poderá encontrar os seguintes problemas:
  • Se clicar numa hiperligação que efectua um método window.open para procurar um novo site, não navegue sequer.
  • Se clicar com o botão direito do rato uma hiperligação e, em seguida, clique em Abrir numa nova janela , receberá uma mensagem de erro "erro não especificado".

Sintomas no Internet Explorer 4.x

novajanela funciona como previsto no Internet Explorer 4. x quando clica numa hiperligação que efectua um método window.open para procurar um novo site ou quando clique com o botão direito do rato numa hiperligação e clique em Abrir numa nova janela .

No entanto, quando utilizar NewWindow2 no Internet Explorer 4. x , poderá encontrar os seguintes problemas:
  • Se clicar numa hiperligação que efectua um método window.open para procurar um novo site, não navegar.
  • Se clicar com o botão direito do rato uma hiperligação e, em seguida, clique em Abrir numa nova janela , receberá uma mensagem de erro "erro não especificado".

Resolução

Para contornar este problema, abra a hiperligação numa janela nova na aplicação em vez de abrir na mesma janela. Para obter informações adicionais, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
184876  (http://support.microsoft.com/kb/184876/EN-US/ ) COMO: Utilizar o evento de NewWindow2 controlo WebBrowser
Note que o evento novajanela funciona no Internet Explorer 4. x e o Internet Explorer 5. Assim, se tiver apenas suportar as versões do browser, pode utilizar o evento novajanela .

Ponto Da Situação

A Microsoft confirmou que este erro ocorre nos produtos da Microsoft listados no início deste artigo.

Mais Informação

Passos para reproduzir o comportamento

Se tiver uma aplicação Microsoft Foundation Classes (MFC) e utilize novajanela para navegar na mesma janela, o seguinte código de falha no Internet Explorer 5.5:
void CDWebBrowserEvents::OnNewWindow(BSTR URL, long Flags, BSTR TargetFrameName, 
				 VARIANT* PostData, BSTR Headers, BOOL FAR* Processed)
{
	if (m_Browser) {
	    COleVariant varEmpty;
	    *Processed = TRUE;
	    m_Browser->Navigate((LPCSTR)URL, &varEmpty, &varEmpty, &varEmpty, &varEmpty);
	}
}

				
se utilizar NewWindow2 , o seguinte código de falha em todas as versões do Internet Explorer:
void CIEDlg::OnNewWindow2(LPDISPATCH FAR* ppDisp, BOOL FAR* Cancel) 
{

	IUnknown* pUnk = m_Browser.GetControlUnknown();
	if (pUnk)
	{
		IDispatch* pDisp = NULL;
		HRESULT hr = pUnk->QueryInterface(IID_IDispatch, (void**)&pDisp);

		if (SUCCEEDED(hr) && pDisp)
			*ppDisp = pDisp;
	}
}
				

Referências

Para obter informações adicionais, clique nos números de artigo existentes abaixo para visualizar os artigos na Microsoft Knowledge Base:
185538  (http://support.microsoft.com/kb/185538/EN-US/ ) COMO: Fazer com que navegação ocorrer na mesma janela WebBrowser
184876  (http://support.microsoft.com/kb/184876/EN-US/ ) COMO: Utilizar o evento de NewWindow2 controlo WebBrowser
194242  (http://support.microsoft.com/kb/194242/EN-US/ ) CORRECÇÃO: window.open faz com que Delay em novajanela eventos
Para mais informações sobre a reutilização de tecnologia de browser, consulte o seguinte Web site da Microsoft:
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/overview/Overview.asp (http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/overview/Overview.asp)
Para obter mais informações sobre como desenvolver soluções baseadas na Web para o Microsoft Internet Explorer, visite os seguintes Web sites da Microsoft:
http://msdn.microsoft.com/ie/ (http://msdn.microsoft.com/ie/)

http://support.microsoft.com/iep (http://support.microsoft.com/iep)

A informação contida neste artigo aplica-se a:
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 4.01 Service Pack 1
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.01
  • Microsoft Internet Explorer (Programming) 5.01 SP1
  • Microsoft Internet Explorer 5.5
Palavras-chave: 
kbmt kbbug kbnofix kbwebbrowser KB294870 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 294870  (http://support.microsoft.com/kb/294870/en-us/ )
Retired KB ArticleExclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.