C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■90454 / )  Re[3]: AddHandler Eventの別スレッドについて
□投稿者/ 魔界の仮面弁士 (2100回)-(2019/03/12(Tue) 14:24:57)
No90444 (TanuTanu さん) に返信
この掲示板では、新規投稿時の注意書きに
 『半角カナは使用しないでください。文字化けの原因になります。』
と記載されておりますので、以後の投稿では、
カタカナを全角表記に統一していただけるとありがたいです。


> @ある画面のボタンを手動でクリック

具体例となるものが欲しかったのですが……とりあえずこちらで提示してみます。

下記は onclick 時に、JavaScript 側で confirm メソッドが呼ばれており、
それによって Web ページダイアログが表示される仕様になっています。
ダイアログで OK するとページ遷移、Cancel では何もしないというものです。
https://www.javadrive.jp/javascript/event/sample2_1.html


対してこちらは、onclick と addEventListener の併用です。
Web ページダイアログを表示させるコードは含まれていませんが、
ボタンを押すたびにテキストが書き込まれるようになっています。
https://ozepon.github.io/onclick_vs_addEventListener/



> もし可能であれば、focusoutイベントではなくボタンクリックのAttachEventHandler等で実現したい。

mshtml に、そんなメソッドありましたっけ?

もしかして、System.Windows.Forms.HtmlElement クラスの AttachEventHandler のことでしょうか。
No90410 はマネージ WebBrowser の話であり、今回のような、 COM の InternetExplorer や WebBrowser には
直接的には関係ありません。(マネージ版も内部で COM を呼んでいるので、間接的には関係ありますが)


IHTMLDocument3 の attachEvent メソッドや、
IEventTarget の addEventListener メソッドの事だとしたら、
レンダリングされている HTML ドキュメントに応じて、
 IE5〜IE8 モードの場合 → attachEvent のみをサポート
 IE9〜IE10 モードの場合 → attachEventとaddEventListenerをサポート
 IE11 モードの場合 → addEventListener のみをサポート
だったはず。

また、イベントは登録した順に割り当てられるものであり、発生順を変えることは基本的にできません。

onclick だけなら、イベントの付け外しも比較的容易なのですが、
attachEvent / addEventListener の場合、detachEvent / removeEventListener するには、
登録したリスナー(イベントハンドラとなる function オブジェクト)を入手する手段が必要で。

同一要素に対してイベントを割り当てるのではなく、
親要素・子要素に対してイベントを割り当てるという手はありますが、
いずれにせよ、ページの作りにも左右される事になると思います。
https://qiita.com/hosomichi/items/49500fea5fdf43f59c58
https://qiita.com/landrunner/items/ab162e305fa2e279c219
返信 編集キー/


管理者用

- Child Tree -