1

C++ アプリでホストされている Web ブラウザーの ActiveX コントロールに表示しているドキュメントがあります。このドキュメントには、不適切な文字セットを指定する META タグが含まれているため、出力がおかしいです。私は正しいエンコーディングを知っており、それをプログラムで変更して修正したいと考えています。しかし、何を試しても、エンコーディングは変更されません。

私はすでにさまざまな組み合わせとフレーバーで試しました:

  • IHTMLDocument2::put_Charset(ドキュメントの読み込みが完了した後);
  • 「META」タグの「charset」プロパティの変更 (を使用IHTMLMetaElement);
  • 「META」タグを完全に削除します(「outerHTML」を空の文字列に設定することにより)。
  • コントロールをリフレッシュします。

このコントロールは、誤ったエンコーディングを保持する点で驚くべき持続性を示しています。他のオプションは何ですか? 読み込まれているドキュメントのソースを操作できません。

4

3 に答える 3

1

designModeプロパティを入れてみてください"On"

于 2012-10-08T01:09:35.240 に答える
0

最終的に機能したものは次のとおりです。

「NavigateComplete2」ブラウザイベントのハンドラで、

  • charsetは、charsetプロパティを使用して変更されます。
  • 次に、METAタグは、outerHTMLを空の文字列に設定することで破棄されます。
  • その後、コントロールが更新されます。

これらのアクションの順序を変更したり、ステップを省略したりすると、操作全体が無効になります。MSHTMLはうるさいです。

于 2012-01-28T21:13:01.067 に答える
0

これによると、呼び出しIWebBrowser->Refresh()た後に呼び出すとうまくいくはずですIHTMLDocument2->put_charset()

于 2012-01-27T21:26:01.807 に答える