問題タブ [mshtml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
html - WYSIWYG html エディター クエリ
アプリケーションのユーザーが単純な HTML メールをデザインできるようにするための単純な WYSIWYG HTML エディターを作成中です。
現時点では、MSHTML で Web ブラウザー コントロールを使用して、表示内容を編集できるようにすることにしました。関連するすべてのボタン、太字、下線などを保持するツールバーがあります。
ツールバーのボタンに正しい状態を表示できるように、現在のブロックに書式設定があるかどうかを確認する方法が必要です。IHTMLDocument にイベント ハンドラーを追加して、マウスを動かしたり矢印キーを押したりしたときに発生するようにしようとしましたが、これにより Web ブラウザーが入力を受け付けなくなりました。
この目標を達成するためのより簡単な方法はありますか?
c# - ファイルまたはアセンブリを読み込めませんでした'Microsoft.mshtml...厳密な名前の検証に失敗しました
WPF / C#プログラムを作成し、WYSIWYGHTML編集にインターネットコントロールを使用しています。
これは通常の実行可能プログラムです。
ほとんどのコンピューターで動作しますが、一部のコンピューターでは次のエラーが発生します。
ファイルまたはアセンブリ'Microsoft.mshtml、Version = 7.0.3300.0、Culture = neutral、PublicKeyToken=b03f5f7f11d50a3a'またはその依存関係の1つを読み込めませんでした。厳密な名前の検証に失敗しました。
'Microsoft.mshtml.dll'ファイルはプログラムとともに配布されます。これは、exeファイルと同じフォルダにある他のすべての必要なdllと一緒です。
これがからの出力ですFuslogvw
ありがとう
html - HTML、CSS、または MSHTML インターフェイスから Internet Explorer のシステム フォントと色を参照する方法はありますか?
私はこのようなことをしたい:
この機能を提供する Microsoft 固有の CSS 値はありますか?
mfc - MFC で CHtmlEditCtrl を使用してズームを実行する方法
CHtmlEditCtrl でズームを実行するのを手伝ってくれる人はいますか?
CHtmlEditCtrl で HTML ドキュメントを表示しました。ここで、エディット コントロールに同じ HTML ドキュメントを異なるズーム レベルで表示させたいと考えています。この機能は InternetExplorer8 で見ました。次に、このズーム機能を MFC アプリケーションに追加する必要があります。
windows - ShowHTMLDialog とボタンのスタイル
win32 ShowHTMLDialog 関数を使用して、いくつかの標準 HTML ボタンを含む HTML ポップアップをアプリケーションに表示します。しかし、何らかの理由で、これらのボタンは IE と同じようにレンダリングされません。丸みがなく、3D 効果がありません。
これをプログラムで変更して、IE レンダリングに似たものを得る方法はありますか? (トライデントが両方のケースで使用されていると思っていたので、これはちょっと奇妙です...)
ありがとう。
mshtml - mshtml を使用して contentEditable を設定し、div を選択できないようにする
私の現在のプロジェクトでは、良くも悪くも mshtml を使用して実装され、contentEditable を true に設定するドキュメント エディターを使用しています。このセットアップを別のものに置き換えることは確かに検討していますが、当面はそれがオプションではないと仮定します.
重要な場合は、VS 2008 (.Net 3.5) と C# を使用してこれを行っています。
構造的な編集のほとんどを UI の背後に隠したいのですが、ユーザーが好きなようにテキストを編集できるようにします。いくつかのスタイルのいずれかで div を追加すると、問題が発生します。
(ボディ タグを追加して、プログラムで行っていることをシミュレートするため、IE でテストできますが、C#/.Net/VS で作業していることを思い出してください。)
これには 2 つの問題があります。
- ユーザーが最初にクリックすると、 div が選択されます。クリックするとすぐにテキストが表示され、ユーザーにサイズ変更ハンドルが表示されないようにしたいと考えています。
- ユーザーがカーソルを [その他のテキスト] に置いてから、キーボードを使用して div テキストに移動しようとすると、移動が妨げられます。div の外を移動している場合、div は 1 文字として扱われます。
事実上、div を単なる背景の装飾のように動作させる方法はありますが、その周りのすべてを編集可能にする方法はありますか? この html は完全に内部的なものなので、好きなことを何でもできます。したがって、div自体は重要ではありません。重要なのは、次のことです。
- 複数の P またはその他のタグを含む
- 含まれているすべての P またはその他のタグが 1 つのグループの一部であることをユーザーに視覚的に示します。これは、現在の div の境界線や背景色などのスタイル設定が現在達成されているためです。
このSOの質問は、現在のセットアップでは私が望むことができないのではないかと心配していますが、同様の問題に遭遇した他の人を助けるようお願いします. すぐに思いついた不完全な解決策をいくつか追加します。
可能かどうかにかかわらず、ご意見をお寄せいただきありがとうございます。
.net - offsetHeightのような値を提供する優れたHTMLパーサーを探しています
HTMLドキュメントを文字列としてロードして解析する必要があるプロジェクトがあります。どのHTMLノードがページの高さ(8.5x11)を超えるかを判断しようとしているので、その前に「page-break-after」を挿入できます。これは、私が作成している.NETdllを使用して実行されます。
mshtmldomを使ってみました。これに文字列値をロードするのは簡単ではありません。これを達成できたとき、offsetHeight(etc)プロパティは常にゼロを返します。これを機能させるために私が見つけた唯一の方法は、HTMLをディスクに保存し、SHDocVw.InternetExplorerを介してロードし、それをmshtmldomに渡すことです。
HTMLがSHDocVwによって「レンダリング」されない限り、これは画面のピクセルに基づいているため、mshtmlが報告するoffsetHeight情報がないと想定しています。私は間違っている可能性があります。
私の現在のコードは次のとおりです。
私には2つの目標があります。#1が鍵であり、#2が理想的です。
1)文字列からHTMLをロードし、上記のコードを引き続き機能させます。
2)理想的には、同じことを行う.NETコンポーネントを見つけます。選択の余地がない限り、.NETのCOMコンポーネントに依存するのは好きではありません。
html - HTML全体をMSHTMLに設定するには?
HTML全体をMSHTMLに設定するには?
私はこの割り当てを使用しようとしています:
しかし、私はエラーが発生しました:
「この操作のターゲット要素は無効です」
私も使ってみました
しかし、このフォームは本文セクションに HTML を追加するだけなので、すべての HTML ソースを置き換える必要があります。
誰かが私がこれを行う方法を知っていますか?
前もって感謝します。
.net - Webbrowser コントロールの Content-Type を設定するには?
Web ブラウザー コントロールでドキュメントの Content-Type を設定することは可能ですか?
たとえば、DocumentText を使用して Web ブラウザー コントロールで XML としてレンダリングされた XML ドキュメントを表示するにはどうすればよいでしょうか。
encoding - IWebBrowser: ストリームから html をロードするときにエンコーディングを指定する方法は?
Web ブラウザのIPersistStreamInitインターフェイスを使用してIStreamからIWebBrowserに HTML コンテンツをロードするために Microsoft が提供するサンプル コードの概念を使用します。
疑似コード:
IStream内でhtmlのエンコーディングを指定するにはどうすればよいですか? IStream には一連のバイトが含まれますが、問題はそれらのバイトが何を表しているかです。たとえば、次のようなバイトを含めることができます。
- 各バイトは、現在の Windows コード ページ (例: 1252) の文字を表します。
- 各バイトは、ISO-8859-1 文字セットの文字を表すことができます
- バイトは UTF-8 でエンコードされた文字を表すことができます
- UTF-16エンコーディングを使用して、2バイトごとに文字を表すことができます
私の特定のケースでは、一連の 2 バイト文字 (UTF-16) を含む IStream を IWebBrowser に提供していますが、ブラウザーは (誤って) UTF-8 エンコーディングが有効であると認識しています。その結果、文字化けが発生します。
回避策
質問ではエンコーディングを指定する方法を尋ねていますが、私の特定のケースでは、UTF-16 エンコーディングのみを使用して、簡単な回避策があります。0xFEFF バイト オーダー マーク (BOM) を追加すると、テキストが UTF-16 Unicode であることを示します。つまり、適切なエンコーディングを使用して、テキストを適切に表示します。
もちろん、テキストがエンコードされている場合は機能しません。たとえば、次のようになります。
- UCS-2
- UCS-4
- ISO-10646-UCS-2
- UNICODE-1-1-UTF-8
- UNICODE-2-0-UTF-16
- UNICODE-2-0-UTF-8
- US-ASCII
- ISO-8859-1
- ISO-8859-2
- ISO-8859-3
- ISO-8859-4
- ISO-8859-5
- ISO-8859-6
- ISO-8859-7
- ISO-8859-8
- ISO-8859-9
- Windows-1250
- Windows-1251
- Windows-1252
- Windows-1253
- Windows-1254
- Windows-1255
- Windows-1256
- Windows-1257
- Windows-1258