文章編號: 294870 - 上次校閱: 2006年5月11日 - 版次: 3.0

注意: 使用 NewWindow 或 NewWindow2 永遠在同一個視窗中瀏覽在某些情況下失敗

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

徵狀

當您裝載 WebBrowser 控制項時,可能會想一定會發生在同一個視窗中的導覽。在這種情況下您可以處理 NewWindowNewWindow2 通知取消巡覽。不過,NewWindowNewWindow2 事件執行一項不一定如預期般運作。

在 Internet Explorer 5.5 中的徵狀

當您在網際網路總管 5.5 中使用 NewWindow 事件時,可能會遇到下列問題:
  • 您如果您按一下 [執行 window.open 方法來瀏覽至新網站的連結可以成功地站台第一次瀏 ; 不過,失敗的第二次。
  • 如果您在連結上按一下滑鼠右鍵,然後按一下 [在新視窗中開啟 時,它第一次,但無法運作後續嘗試。
當您在網際網路總管 5.5 中使用 NewWindow2 事件時,可能會遇到下列問題:
  • 如果您按一下 [執行 window.open 方法來瀏覽至新網站的連結會收到 「 未指定的錯誤 」 錯誤訊息。
  • 如果您在連結上按一下滑鼠右鍵,然後按一下 [在新視窗開啟 時,它不會不巡覽根本。

在 Internet Explorer 5 的徵狀

可以運作 NewWindow,是如預期 Internet Explorer 5,當您按下執行 window.open 方法來瀏覽至新網站的連結,或是當您在連結上按一下滑鼠右鍵,然後按一下 [在新視窗中開啟

不過,在 Internet Explorer 5 中使用 NewWindow2 時, 您可能會遇到下列問題:
  • 如果您按一下 [執行 window.open 方法來瀏覽至新網站的連結它並不巡覽根本。
  • 如果您在連結上按一下滑鼠右鍵,然後按一下 [在新視窗中開啟 時,您會收到未指定的錯誤 」 錯誤訊息。

在 Internet Explorer 4.x 的徵狀

NewWindow 運作方式如所預期般在網際網路總管 4 x 當您按下的連結,會執行 window.open 方法來瀏覽至新的網站或當您在連結上按一下滑鼠右鍵然後按一下 [在新視窗中開啟

不過,當您使用 NewWindow2 網際網路總管 4] 中 x,您可能會遇到下列問題:
  • 如果按一下 [執行 window.open 方法來瀏覽至新網站的連結,並不瀏覽。
  • 如果您在連結上按一下滑鼠右鍵,然後按一下 [在新視窗中開啟 時,您會收到未指定的錯誤 」 錯誤訊息。

解決方案

如果要解決這個問題,請在您的應用程式,而非在同一個視窗中開啟中的新視窗中開啟連結。如需詳細資訊按一下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
184876? (http://support.microsoft.com/kb/184876/EN-US/ ) HOWTO: 使用 WebBrowser 控制項 NewWindow2 事件
請注意,NewWindow 事件適用於網際網路總管 4 x 和 Internet Explorer 5。因此,如果您只有支援這些版本的瀏覽器,您可以使用 NewWindow 事件。

狀況說明

Microsoft 已確認這是在本文開頭所列之 Microsoft 產品中的有錯誤。

其他相關資訊

重製行為的步驟

如果您擁有 Microsoft 基礎類別 (MFC) 應用程式,並使用 NewWindow 在同一個視窗中瀏覽,網際網路總管 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);
	}
}

				
如果您使用 [NewWindow2 下列程式碼會失敗的 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;
	}
}
				

?考

如需詳細資訊按一下面的文件編號,檢視 「 Microsoft 知識庫 」 中 「 文件:
185538? (http://support.microsoft.com/kb/185538/EN-US/ ) HOWTO: 會導致發生在相同 WebBrowser 視窗巡覽
184876? (http://support.microsoft.com/kb/184876/EN-US/ ) HOWTO: 使用 WebBrowser 控制項 NewWindow2 事件
194242? (http://support.microsoft.com/kb/194242/EN-US/ ) FIX: window.Open 導致延遲 NewWindow 事件
有關更多如何重複使用瀏覽器技術,請參閱下列 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)
如需有關 Microsoft Internet Explorer 開發 Web 為基礎的解決方案的詳細資訊,請造訪下列 Microsoft 網站:
http://msdn.microsoft.com/ie/ (http://msdn.microsoft.com/ie/)

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

這篇文章中的資訊適用於:
  • 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
關鍵字:?
kbmt kbbug kbnofix kbwebbrowser KB294870 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:294870? (http://support.microsoft.com/kb/294870/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
Retired KB Article依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。