Internet Explorer 不適用透過 GetHostInfo 已更新的全域樣式工作表

文章翻譯 文章翻譯
文章編號: 328803 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
全部展開 | 全部摺疊

在此頁中

徵狀

當您指定通用的樣式表使用 IDocHostUIHandler::GetHostInfo 實作應用程式中的裝載網頁瀏覽器控制項時,通用的樣式表之後,無法變更已在套用第一次。

發生的原因

第一次建立樣式表時 MSHTML 只會更新其內部的通用樣式表。

解決方案

Microsoft 提供支援的 Hotfix。不過,此 Hotfix 旨在修正本文中所述隨問題。只會發生此特定問題的系統套用此 Hotfix。這個 Hotfix 可能會接受額外的測試。因此,如果您不會嚴重影響這個問題,我們建議您等候下一個包含此 Hotfix 的軟體更新。

如果此 Hotfix 可供下載,您可在本知識庫文件的頂端找到「 可用的 Hotfix 下載 」區段。如果本節 Does Not Appear 請連絡[ Microsoft 客戶服務 ] 和 [ 支援 ] 以取得此 Hotfix。

附註如果發生其他問題,或如果需要任何疑難排解,您可能必須建立個別的服務要求。和此 Hotfix 無關的額外支援問題適用一般的支援費用。如需 Microsoft 客戶服務支援部門電話號碼的完整清單或要建立個別的服務要求,請造訪下列 Microsoft 網站:
http://support.microsoft.com/contactus/?ws=support
附註「 下載 Hotfix 」 表單會顯示此 Hotfix 會出現,以供使用的語言。如果您沒有看到您的語言,是因為此 Hotfix 是不適用您的語言。

此修正程式的英文版具有檔案屬性 (或更新) 中如下表所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用 [中日期] 和 [時間] 工具,在 [控制台] 中的 [時區] 索引標籤]。
   Date      Time     Version       Size       File name
   -------------------------------------------------------
   03-Oct-02 13:14    6.0.2722.300  2,763,264  Mshtml.dll
				

狀況說明

Microsoft 已確認這是 Microsoft Internet Explorer 6 中的問題。

其他相關資訊

只有在 MSHTML 初始化之後,就會發生這個問題。這表示如果您的下次開啟 HTML 檔案開啟非 MSHTML 文件 (例如 Microsoft Word 文件或任何其他類型的作用中的文件伺服程式文件),MSHTML 重新初始化與所提供的 IDocHostUIHandler::GetHostInfo 實作通用的樣式表。

重現問題的步驟

  1. 在 Visual 的 Studio.NET 中建立 Microsoft 基礎類別 (MFC) 單一文件介面 (SDI) CHtmlView 應用程式。
  2. 將保留目前的全域樣式工作表的檢視類別中加入成員變數:
    class CMFCTestView : public CHtmlView
    {
    ...
    	LPWSTR m_pZoom;
    ...
    };
    
  3. 初始化成員變數至建構函式中您想要在初始的樣式表:
    CMFCTestView::CMFCTestView()
    {
    	m_pZoom = L"BODY{Zoom:200%;}";
    }
    
  4. 覆寫 OnGetHostInfo 虛擬函式的 CHtmlView 實作通用的樣式表套用 GetHostInfo 方法透過程式碼。IDocHostUIHandler::GetHostInfoCHtmlControlSite 中實作,並呼叫 OnGetHostInfo 使用在檢視中的方法。
    // header file
    class CMFCTestView : public CHtmlView
    {
    ...
    virtual HRESULT OnGetHostInfo(DOCHOSTUIINFO *pInfo);
    ...
    };
    
    // implementation file
    HRESULT CMFCTestView::OnGetHostInfo(DOCHOSTUIINFO *pInfo)
    {
    	pInfo->pchHostCss = (LPWSTR)::CoTaskMemAlloc((lstrlenW(m_pZoom)+1)*2);
    	lstrcpyW(pInfo->pchHostCss, m_pZoom);
    	return S_OK;
    }
  5. 加入功能表項目,其處理常式,以便在 CHTMLView 衍生類別。在這個功能表處理常式呼叫 IWebBrowser2::Refresh() 方法。 IWebBrowser2::Refresh() 將新的通用樣式表套用於使用中的網頁。
    void CMFCTestView::OnActionTest()
    {
    	m_pZoom = L"BODY{Zoom:50%;}";
    	m_pBrowserApp->Refresh();
    }
    
  6. 更新的檢視,以指向測試 HTML 頁面 OnInitialUpdate 方法:
    void CMFCTestView::OnInitialUpdate()
    {
    	CHtmlView::OnInitialUpdate();
    	Navigate2(_T("http://myserver/mytestpage.htm"),NULL,NULL);
    }
  7. 建置並執行應用程式。當第一次顯示網頁時的所有項目出現放大 200 %。
  8. 使用功能表巨集指令新增到套用新樣式。 沒有 Hotfix 時,頁面即重新整理但縮放比例會保持不變。 套用此 Hotfix 之後,網頁重新整理,並出現 50%的縮放比例。

屬性

文章編號: 328803 - 上次校閱: 2013年10月26日 - 版次: 1.5
這篇文章中的資訊適用於:
  • Microsoft Internet Explorer (Programming) 6.0
關鍵字:?
kbnosurvey kbarchive kbmt kbautohotfix kbhotfixserver kbqfe kbwebbrowser kbhtml kbie600sp2fix kbie600presp2fix kbfix kbbug KB328803 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:328803
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com