DOBON.NETプログラミング道掲示板
(現在 過去ログ2 を表示中)
HOME
HELP
新規作成
新着記事
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
[
最新記事及び返信フォームをトピックトップへ
]
[ トピック内全8記事(1-8 表示) ] <<
0
>>
■33445
/ inTopicNo.1)
webbrowserでjqueryのイベントを発生させたい
▼
■
□投稿者/ しろろん
一般人(1回)-(2016/08/12(Fri) 13:01:49)
環境/言語:[VB.NET]
分類:[.NET]
webbrowserで下記htmlページを読み込み、.netでセレクトボックスの値を変更していますが、jqueryのイベントが発火しません。
jqueryのイベントを動作させるためにはどうすればいいのでしょうか?
なお、jqueryを使わないJavascriptの場合はイベントが発生します。
どうぞよろしくお願いいたします。
-------------------------
<html>
<head>
<script src="http://code.jquery.com/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$("#sb").change(function() {
alert("change!");
});
});
</script>
</head>
<body>
<form>
<select id="sb">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
</form>
</body>
</html>
-------------------------
Dim SelectElement As HtmlElement = WebBrowser1.Document.GetElementById("sb")
SelectElement.GetElementsByTagName("option").Item(2).SetAttribute("selected", "true")
SelectElement.RaiseEvent("onChange")
引用返信
削除キー/
編集
削除
■33446
/ inTopicNo.2)
Re[1]: webbrowserでjqueryのイベントを発生させたい
▲
▼
■
□投稿者/ 魔界の仮面弁士
大御所(1042回)-(2016/08/12(Fri) 13:37:13)
■
No33445
に返信(しろろんさんの記事)
> jqueryのイベントを動作させるためにはどうすればいいのでしょうか?
FEATURE_BROWSER_EMULATION が設定されていないでしょうか?
もし設定されていたら、解除してから試してみてください。
引用返信
削除キー/
編集
削除
■33447
/ inTopicNo.3)
Re[2]: webbrowserでjqueryのイベントを発生させたい
▲
▼
■
□投稿者/ 魔界の仮面弁士
大御所(1043回)-(2016/08/12(Fri) 14:43:13)
■
No33446
に追記(魔界の仮面弁士の記事)
> FEATURE_BROWSER_EMULATION が設定されていないでしょうか?
以下、解説漏れへの補足と対処策。
ご存知かと思いますが、FEATURE_BROWSER_EMULATION 指定が無い場合、
WebBrowser は、既定で IE7 モードにて駆動します。
また、HtmlElement.RaiseEvent メソッドは、
IHTMLElement3.FireEvent に相当する機能ですが、
実はこれ、IE11 モードだと着火しない仕様です。
https://msdn.microsoft.com/ja-jp/library/ff986080.aspx
IE11 モードでイベントを発生させたいのであれば、
IEventTarget.dispatchEvent を用いる必要があります。
https://msdn.microsoft.com/en-us/library/ff975826.aspx
残念ながらマネージ版 WebBrowserでは、
この機能がカプセル化されていないようなので、
IE11 モードの場合、少々面倒なコーディングが必要になります。
SelectElement.GetElementsByTagName("option").Item(2).SetAttribute("selected", "True")
Dim doc = WebBrowser1.Document.DomDocument
Dim evt = CallByName(doc, "createEvent", CallType.Method, "HTMLEvents")
CallByName(evt, "initEvent", CallType.Method, "change", True, False)
SelectElement.InvokeMember("dispatchEvent", evt)
System.Runtime.InteropServices.Marshal.ReleaseComObject(evt)
System.Runtime.InteropServices.Marshal.ReleaseComObject(doc)
引用返信
削除キー/
編集
削除
■33448
/ inTopicNo.4)
Re[3]: webbrowserでjqueryのイベントを発生させたい
▲
▼
■
□投稿者/ しろろん
一般人(2回)-(2016/08/12(Fri) 17:22:47)
■
No33447
に返信(魔界の仮面弁士さんの記事)
返信ご丁寧にありがとうございました!
ご推測の通り
FEATURE_BROWSER_EMULATIOでIE11に設定していました。
IE10モードではjqueryも動作したため、今回はIE10モードで行くことにします。
どうもありがとうございました!!
解決
済
み!
引用返信
削除キー/
編集
削除
■33759
/ inTopicNo.5)
Re[3]: webbrowserでjqueryのイベントを発生させたい
▲
▼
■
□投稿者/ C#びぎなー
一般人(1回)-(2017/12/22(Fri) 16:42:50)
■
No33447
に返信(魔界の仮面弁士さんの記事)
> ■
No33446
に追記(魔界の仮面弁士の記事)
>>FEATURE_BROWSER_EMULATION が設定されていないでしょうか?
>
>
>
> IE11 モードでイベントを発生させたいのであれば、
> IEventTarget.dispatchEvent を用いる必要があります。
> https://msdn.microsoft.com/en-us/library/ff975826.aspx
>
> 残念ながらマネージ版 WebBrowserでは、
> この機能がカプセル化されていないようなので、
> IE11 モードの場合、少々面倒なコーディングが必要になります。
>
> SelectElement.GetElementsByTagName("option").Item(2).SetAttribute("selected", "True")
>
> Dim doc = WebBrowser1.Document.DomDocument
> Dim evt = CallByName(doc, "createEvent", CallType.Method, "HTMLEvents")
> CallByName(evt, "initEvent", CallType.Method, "change", True, False)
> SelectElement.InvokeMember("dispatchEvent", evt)
> System.Runtime.InteropServices.Marshal.ReleaseComObject(evt)
> System.Runtime.InteropServices.Marshal.ReleaseComObject(doc)
魔界の仮面弁士 様
お世話になっております。
C#のWebBrowserかつIE11の環境で開発をしております。
本件同様の問題にぶつかり調べていると
本サイトに辿り着きました。
C#かつIE11 モードでイベントを発生させたい場合
どのように実装すればよろしいでしょうか。
お忙しいところ申し訳ございません。
C#での開発が今回初めて勉強不足でおはずかしい限りではございますが
ご教授くださいますようよろしくお願いいたします。
引用返信
削除キー/
編集
削除
■33760
/ inTopicNo.6)
【お願い】新しいスレッドでご投稿ください
▲
▼
■
□投稿者/ 管理人
大御所(1529回)-(2017/12/23(Sat) 03:04:22)
■
No33759
に返信(C#びぎなーさんの記事)
ルール違反という訳ではありませんが、新しい質問は別のスレッドをたてていただいた方が分かりやすいと思いますので、お手数ですが、上部メニューの「新規作成」からもう一度投稿していただけないでしょうか?その際は、不要な引用は削除してください(「
No33447
の投稿について、質問があります」のような感じで結構です)。
さらに、ご利用のC#のバージョン(dynamic型が使えるか)を書いていただけると、より良い結果が得られるかもしれません。
もし「書き込みのルールについて」をまだお読みでない場合は、まずお読みいただいてから、ご投稿ください。
なおこの投稿への返信は必要ありません。
よろしくお願いいたします。
解決
済
み!
引用返信
削除キー/
編集
削除
■33761
/ inTopicNo.7)
Re[5]: 【お願い】新しいスレッドでご投稿ください
▲
▼
■
□投稿者/ C#びぎなー
一般人(2回)-(2017/12/23(Sat) 17:01:55)
管理人 様
ご指摘の新規にスレッドをたてる旨承知しました。
私の該当記事を削除しようとしましたが
「エラー : 返信の付いている記事は削除できません。」
と表示され、削除できませんでした。
ご迷惑をお掛けし申し訳ございませんでした。
引用返信
削除キー/
編集
削除
■33765
/ inTopicNo.8)
Re[6]: 【お願い】新しいスレッドでご投稿ください
▲
▼
■
□投稿者/ 管理人
大御所(1530回)-(2017/12/24(Sun) 02:24:48)
2017/12/24(Sun) 02:40:21 編集(投稿者)
■
No33761
に返信(C#びぎなーさんの記事)
前回の投稿で「返信不要」とさせていただいたのは、「解決済み」が消えてしまうのを防ぐ目的がありました。今度こそは、返信しないでください。
なお投稿が削除できない理由は、「書き込みのルールについて」にありますので、必ずお読みください。
追記:C#びぎなーさんが、
No33762
に新規ご投稿いただいたことを追記します。
解決
済
み!
引用返信
削除キー/
編集
削除
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
Mode/
通常管理
表示許可
Pass/
HOME
HELP
新規作成
新着記事
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
-
Child Tree
-