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

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

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

Re[8]: ブラウザへのキーイベント発生方法について


(過去ログ 95 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■56406 / inTopicNo.1)  ブラウザへのキーイベント発生方法について
  
□投稿者/ ごう (227回)-(2011/01/13(Thu) 10:17:33)

分類:[VB.NET/VB2005 以降] 


VB2010 Expressを使ってブラウザを操作するプログラムを作成しています。

ブラウザ側の仕様ですが、テキストボックス(xxx)に値を入力し、
Enterキーを押すとある計算(yyy)がされます。

<input id="xxx" onkeypress="return trapEnter(event, 'yyy(1);');" type="text">


xxxに値を代入した後、FireEventイベントを利用しようと考えていますが、
Enterキーを押す動作(キーイベント)をどう実装していいかわからず、質問させていただきました。

obj = doc.all.item("xxx")
obj.Value = 123
obj.FireEvent("onkeypress")


よろしくお願いいたします。
引用返信 編集キー/
■56414 / inTopicNo.2)  Re[1]: ブラウザへのキーイベント発生方法について
□投稿者/ ごう (228回)-(2011/01/13(Thu) 15:22:42)
No56406 (ごう さん) に返信

# 同じ名前だ・・・

ブラウザ側ということは VBというより、JavaScriptの質問でしょうかね?

何が知りたいのか文章から読み取れないんだけど、onKeyPressイベントあたりで
Enterキーを押されたかどうか判別するやり方がわからないってことですかね?


参考:
http://vertex.air-nifty.com/blog/2007/08/javascript_ente_a090.html

function enterをfunction trapEnterに読み替えてみてはどうでしょうか。


引用返信 編集キー/
■56416 / inTopicNo.3)  Re[2]: ブラウザへのキーイベント発生方法について
□投稿者/ ごう (229回)-(2011/01/13(Thu) 16:45:48)
No56406 (ごう さん) に返信


このわんくま掲示板は、別にマルチポスト禁止されてないけど
リンク先で別のもっといい解答がつくかもしれないので、同じ内容の質問をリンクしておきますね。

http://okwave.jp/qa/q6444761.html
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1453667304



引用返信 編集キー/
■56444 / inTopicNo.4)  Re[3]: ブラウザへのキーイベント発生方法について
□投稿者/ ごう (231回)-(2011/01/14(Fri) 00:17:31)
同じ名前のごうさん、
回答、ありがとうございます。


わたしの説明が悪かったようです。

VBプログラムから「操作したいブラウザ」に上記のinputタグが組み込まれており、
onkeypressイベントで実行されるtrapEnter関数には今回教えていただいた
「EnterキーでSubmitするロジック」(yyy)が既に実装されいます。

今回の問題は、inputタグに値を代入(obj.Value = 123)し obj.FireEvent("onkeypress")を
実行しても、ブラウザ側(trapEnter関数)ではEnterキーが押されいないと認識し、
yyy関数を実行してくれません。

どのようにすれば、VBプログラムからブラウザ側に Enterキーを擬似的に発生させ、
trapEnter関数からyyy関数を実行させることができのでしょうか。

伝わりましたでしょうか。

引用返信 編集キー/
■56449 / inTopicNo.5)  Re[4]: ブラウザへのキーイベント発生方法について
□投稿者/ todo (93回)-(2011/01/14(Fri) 10:10:59)
Webbrowser.Navigate2("javascript:trapEnter(new function(){this.keyCode=13; },'yyy(1);');");

# trapEnterの第1引数にはevent.keyCodeを偽装したクラスのインスタンスを渡しています。

JavaScriptにおける“クラス”の定義
http://www.atmarkit.co.jp/fdotnet/ajaxjs/ajaxjs04/ajaxjs04_01.html
引用返信 編集キー/
■56452 / inTopicNo.6)  Re[5]: ブラウザへのキーイベント発生方法について
□投稿者/ todo (94回)-(2011/01/14(Fri) 10:33:00)
または、
Webbrowser.Navigate2("javascript:trapEnter({keyCode:13},'yyy(1);');");

オブジェクトと連想配列
http://www.atmarkit.co.jp/fdotnet/ajaxjs/ajaxjs04/ajaxjs04_04.html
引用返信 編集キー/
■56486 / inTopicNo.7)  Re[6]: ブラウザへのキーイベント発生方法について
□投稿者/ ごう (232回)-(2011/01/14(Fri) 23:59:56)
todo さん
回答、ありがとうございます。

やってみましたが、yyy関数は実行されませんでした。
教えていただいたサイトをじっくり読んで、週末
再度、チャレンジしてみます。

引用返信 編集キー/
■56494 / inTopicNo.8)  Re[7]: ブラウザへのキーイベント発生方法について
□投稿者/ 渋木宏明 (54回)-(2011/01/15(Sat) 12:56:45)
渋木宏明 さんの Web サイト
どうしても「Enter キーが押されたこと」にしないとダメなのかな?

DOM 捕まえてるんなら form.submit() 呼ぶとかでいーよーな気が。
引用返信 編集キー/
■56514 / inTopicNo.9)  Re[8]: ブラウザへのキーイベント発生方法について
□投稿者/ ごう (233回)-(2011/01/17(Mon) 21:26:11)
2011/01/17(Mon) 21:27:33 編集(投稿者)

todoさん、

内容は理解できましたが、やっぱりうまく動作しませんでした。
とりあえず SendKeysで回避しましたが、もうしばらく調査してみようと思います。

ご協力、ありがとうございました。
解決済みといたします。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -