問題タブ [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 に答える
7465 参照

c# - C#:CSSをMSHTMLインスタンスに挿入する最良の方法は?

他の HTML に付随する CSS を C# マネージド WebBrowser コントロールに挿入しようとしています。このコードは完全な IE8 BHO の一種のプロトタイプとして機能しているため、基になる MSHTML (DomDocument プロパティ) コントロールを介してこれを実行しようとしています。

問題は、HTML (mydomdocument.body.insertAdjacentHTML 経由) と Javascript (mydomdocument.parentWindow.execScript 経由) を挿入できますが、CSS コードを完全に拒否することです。

挿入したい HTML を含む文字列をインジェクション後の宛先ページ ソースと比較すると、MSHTML のソースには、要素とその基になるソースを除くすべてが文字通り含まれます。<style>

CSS は、CSS 2.1 の W3C 検証に合格しています。一部の background-image プロパティは画像を直接 CSS に埋め込んでおり (例: background-image: url("data:image/png;base64...)、これらの行をコメントアウトしても結果は変わりません。

さらに奇妙なことに (これが関連しているかどうかはわかりませんが)、先週は問題がなかったということです。今週また戻ってきましたが、実際に挿入する前に、挿入される HTML を処理するコードの一部を切り替えたところ、機能しなくなりました。当然、私の変更の 1 つが何らかの問題である可能性があると考えましたが、すべてのロジックをコメントアウトしてストレート文字列を入力した後でも、HTML はまだフォーマットされていないように見えます。

現時点では、<body>タグに注入していますが、注入しようとしましたが<head>、同様の結果が得られました。

よろしくお願いします。

トム

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

c++ - IHTMLDocument2 :: write()の問題

htmlバッファからmshtmlドキュメントオブジェクトを作成しようとしています。ただし、次のコードを実行すると、InternetExplorerウィンドウが呼び出されます。IEを呼び出さないようにするにはどうすればよいですか。

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

c# - mshtmlを使用してチェックボックスを「チェック済み」に設定するには?

私は mshtml で必要なほとんどのことを行うことができますが、チェックボックスの入力要素を「チェック済み」に設定する方法に少しこだわっています。これが状況です...

助けてくれてありがとう!

グレッグ

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

asp.net - Visual Studio がインストールされていないマシンで MSHTML を使用するにはどうすればよいですか?

ASP.NET-MVC アプリケーションで mshtml を使用して HTML を解析しています。VS2008 Professional がインストールされている開発マシンでうまく動作します。VS Express 2008/WebDev がインストールされているステージング マシンでうまく動作します。しかし、Visual Studio のバージョンがない運用サーバーに COM オブジェクトをロードしようとすると、FileNotFoundException がスローされます。

'Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' またはその依存関係の 1 つ。システムは、指定されたファイルを見つけることができません。

製品ボックスに Visual Studio をインストールしたくありません。C:\Program files\Common Files\Merge modules\vs_piaredist.exe を実行するとこの問題が解決するという提案を読みましたが、このディレクトリは実稼働ボックスには存在しません。運用マシンで mshtml を使用するにはどうすればよいですか?

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

c# - C#のmshtml.HTMLDocumentClass

C#では、InternetExplorerオブジェクトからHTMLDocumentClass全体を取得することができました(特定のURLに移動します)。

ただし、Visual Studio 2008のデバッグモードでは、この特定のURLのこのHTMLDocumentClassのコンテンツはMASSIVEであり、activeElement、alinkColor、all、applets、charset、childNodesなどの属性が含まれます。

そのページに「クリック」に変更したいボタンがあります。しかし、そのボタンの名前/ID/タグを見つける方法がわかりません。次のようなステートメントを使用する簡単なチュートリアルがあります。

しかし、私のURLの構造はそれよりも100倍複雑です。

URLがyahoo.comで、Web検索ボタンを「クリック」したいとします。

これについて体系的な方法はありますか?

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

c# - C# での DOM 要素へのアクセス

COM Browser オブジェクトによって返される DOM 要素にアクセスするために、mshtml 名前空間を使用しています。

私のコードはおおよそ次のとおりです

ここまでは、myDiv は DivElement です。

ただし、Web ページ自体には、「divID」の下にさらに DIV が含まれています。つまり、ネストされた DIV のレイヤーが多数存在します。

しかし、myDIV オブジェクトは mshtml.HTMLDivElement 型であり、その子としてさらに DIVS を取得する機能がありません。

この場合、どうすればよいですか?ネストされた方法で取得する必要がある DIV がさらにあると仮定しますか?