問題タブ [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.

0 投票する
1 に答える
1269 参照

delphi - TWebBrowser に他のコントロールのアクセラレータ文字を無視させる方法は?

designMode が有効なフォームに TWebBrowser を配置しました。
ブラウザの下に、キャプションが「閉じる」に設定された閉じるボタンがあります。
WebBrowser 内のドキュメントの内容を編集しているときにキー E を押すと、閉じるボタンが呼び出されます。
キーを処理しない、および/または文字を受け入れない他のコントロール (TButton など) のように、TWebBrowser を扱っているようです。

どうすればこれを解決できますか?

前もって感謝します。

0 投票する
3 に答える
1193 参照

delphi - Application.ProcessMessages を使用せずに MSHTML ドキュメントを読み込む別の方法はありますか?

Application.ProcessMessages を使用せずに MSHTML ドキュメントを読み込む別の方法はありますか?

ドキュメントを IHTMLDocument にロードするには、次のようにする必要があります。

ロード中にすべてのメッセージ キューを処理したくありません。アプリケーション フローを変更するためです。

IHTMLDocument がロード プロセスで進むと予想される特別なメッセージ コードがありますか? または、ロードする別の方法はありますか?

0 投票する
1 に答える
1631 参照

javascript - この window オブジェクトに eval 関数がないのはなぜですか?

IEのYUI リッチ エディット デモで興味深い (?) 問題に遭遇しました。windowブラウザーとして使用されるコンテンツ編集可能フレームのオブジェクトを見ると、eval関数が未定義であることがわかります (以下を実行すると)。

これは IE でのみ発生し (IE6 と IE8 で確認しました)、Firefox や Chrome では発生しません。

他のすべての関数とプロパティは順調に進んでいるようです。これは実際には定義されていませんが、グローバルオブジェクトで定義されているwindowことに気付きましたが、ブラウザでがグローバルオブジェクトであることがわかりました(他のすべてのウィンドウにも表示されるので、なぜですか?これで?)。evalwindowwindow eval

これがIEの既知のバグ/制限であるかどうか、およびevalこのフレームのグローバルオブジェクトのコンテキストでどのように取得できるかを知っている人はいますか? (このフレーム内から実行されているものすべてに副作用を利用できるようにする必要があります)。

0 投票する
2 に答える
2543 参照

c# - C#/.NET 4.0 の新しい NoPIA および Type Equivalence 機能は、Microsoft.mshtml.dll が不要になったことを意味しますか?

IE Web ブラウザー コントロールに基づく WinForms ベースの WebBrowser コントロールを含む WPF ベースのアプリケーションを維持しています。展開するときは、Microsoft.mshtml.dllも提供し、ClickOnce 発行プロセスのためにいくつかのカスタム構成を行って、動作させる必要がありました。

C# 4.0の新しいNoPIAType Equivalence機能と動的型機能により、アップグレードすれば、Microsoft.mshtml.dllアセンブリへの依存関係を削除できると期待できますか? もしそうなら、これは展開のサイズをかなり縮小するだけでなく、公開プロセスも簡素化します.

通常は自動的に生成される型を、Visual Studio による MapPoint コントロールなどの COM 型の追加アセンブリに埋め込むことができるようにする必要があることを理解しています。これがMicrosoft.mshtml.dllにも当てはまるかどうか、または最も単純なケースでもどのように行われるかはわかりません。これらの新機能が、COM 相互運用機能、特にMicrosoft.mshtml.dllアセンブリに依存するプロジェクトに実際にどのような影響を与えるかについて誰かが説明できれば、非常に助かります。

0 投票する
3 に答える
3530 参照

c# - HTMLテキスト要素値の設定

C#WPFプログラムで、次のようTextに定義されたHTML要素の値を設定しようとしています。

私は次のことを試しました:

しかし、次の例外が発生します。

Unable to cast COM object of type 'System.__ComObject' to interface type 'mshtml.HTMLInputTextElement'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{3050F520-98B5-11CF-BB82-00AA00BDCE0B}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).

それが何を言っているかは知っていますが、テキストボックスにアクセスするためにどのオブジェクトを使用できるかわかりません。

私は何が間違っているのですか?

0 投票する
2 に答える
434 参照

c# - C# を使用して JavaScript で作成されたカスタム オブジェクトでメソッドを呼び出すにはどうすればよいですか?

WebBrowser コントロールがあります。head タグに JavaScript を追加しました。アラートを追加すると、期待どおりに機能していることがわかります。このjs内で関数を作成し、そのプロトタイプにいくつかのメンバーを次のように追加しています:

次に、C# の内部に戻ります。

テスト オブジェクトが ComObject であることがわかりますが、run() を呼び出しても何も起こりません。エラーは発生しませんが、何も起こりません。このタイプのカスタムオブジェクトを呼び出す方法を知っている人はいますか?

また、createTest() メソッドを削除したいとします。C# からテストの新しいインスタンスを作成するにはどうすればよいでしょうか?

また、ボーナス ポイントとして、C# コードにコールバックするように、このカスタム オブジェクト (たとえば「完全な」メンバー) にイベントをアタッチすることについて知っておく必要がある特別なことはありますか?

0 投票する
3 に答える
1023 参照

delphi - プログラムで tiff 画像 (または pdf) を回転する

TWebBrowser コントロール (Delphi を使用) で画像 (jpg または gif) を回転させる方法を知っている人はいますか?

アップデート

ファイルはローカルになります。

Update 2 だから、問題は画像やPDFを回転させる方法だと思います。

0 投票する
1 に答える
531 参照

c# - BHOメモリリーク

私はこのチュートリアルに基づいてBHOを作成しました:http: //www.codeproject.com/KB/cs/Attach_BHO_with_C_.aspx

GetSiteSetSiteはチュートリアルリストと同じです。OnDocumentCompleteハンドラーを追加/削除し、 SetSite関数SHDocVW.WebBrowser webBrowser内で割り当てていますIObjectWithSite

デバッグの目的で、基本的な機能を除くすべてを削除しました。これが私のOnDocumentCompleteハンドラーです。

VS2008デバッガーをIEインスタンスに接続すると、それぞれのウィンドウ/タブが閉じられた後、ロードされたすべての.jsがスタックしていることに気付きます。OnDocumentCompleteの条件をfalseに設定すると(またはBHOを無効にすると)、リークはなくなります。mshtml.HTMLDocumentで実行する必要のあるクリーンアップは他にもありますか?ありがとう!

0 投票する
2 に答える
1322 参照

c++ - 32 ビット アプリの WebBrowser コントロール window.open() 呼び出しで 64 ビット Internet Explorer を起動します。

Windows 7 64 ビットで 32 ビット アプリケーションを実行しています。アプリケーション (C++ で記述) は、WebBrowser コントロールをホストします。

WebBrowser コントロールが (javascript window.open() 呼び出しによって) 新しいウィンドウをポップアップするように要求されると、新しい Internet Explorer プロセスを起動します。特に、この新しい IE プロセスは 64 ビット IE プロセスです。

Web ページは Adob​​e Flash が大好きなので、残念ながら、AdobeFlash コンテンツを表示できるように、起動する新しい IE プロセスが 32 ビット バージョン (私のマシンのデフォルト) であることを確認する必要があります。

興味深いことに、IE 自体 (WebBrowser/MSHTML のラッパー) にはこの問題はありません。これは、32 ビット プロセスを起動するよう WebBrowser コントロールにヒントを与えるように設定できる何らかの構成があることを意味します。

WebBrowser/MSHTML が適切なプロセスを作成することを確認する必要があるアイデアはありますか?

0 投票する
1 に答える
1087 参照

c# - C#: mshtml.HTMLInputFileElement の値を設定する方法

私は現在、mshtml.HTMLInputFileElement を使用して、HTML ドキュメントで「ファイル」タイプの入力要素の値を設定できるようにする必要があるプロジェクトに取り組んでいます。私はこれを行うのに非常に苦労しています。

最初にこれを試しました:

しかし、値は設定されていませんでした。次に、別のフォーラムで、値のプロパティを直接設定することはできませんが、その入力要素にフォーカスを与え、SendKeys を使用して次のように値をファイル要素に送信することで設定できることを読みました。

これも失敗し、フィールドが書き込み可能ではないという COM 例外をスローしました。

HTMLInputFileElement の値フィールドを設定する方法はありますか?