質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

626閲覧

物理的ではなくJavaScript上でキーボードを押したという判定を作りたい

nano_09

総合スコア15

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/10/07 13:40

編集2020/10/08 05:23

前提・実現したいこと

JavaScript上でキーボードが押されたというのを実現したい

###試したこと
上記サイトを参考にしたサイト
https://ameblo.jp/personwritep/entry-12456996738.html

JavaScript

1document.dispatchEvent( new KeyboardEvent( "keyup",{key: "a" })); 2window.document.onkeyup = function(event){ 3alert(document); 4}

上記を試したところ
「a」と表示されると思ったら
アラートに「object HTMLDocument」と表示されてしまいました。

alert(document);
の部分が「a」が押された情報を持つにはどうすれば良いでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/10/07 21:18

質問に書いてないことは誰にも分かりませんので 「調べた」のであれば調べたことも記載してください。 調べたなら何かしら試すでしょうから試したことも。 理解できなかったのならどのあたりがどう理解できなかったか。 でないと「もうそれを見た」という後出しされるとせっかくの回答が無駄になります。 書いてあることが全てなので、回答者は「こういうところは調べただろうな」「ここまでやっただろうな」というエスパーは一切してくれませんし、する必要はありません。 本当に調べず試さず丸投げする人との区別はつけられません。 質問は編集できますので、適宜調整してください。 できれば、「質問するときのヒント」を読み、「質問テンプレート」を使ってくださいね。 https://teratail.com/help/question-tips
yambejp

2020/10/08 00:10

質問も初心者のようなので「具体的になにをしたときに、どういう結果を得たいか」を明記するようにしてください
nano_09

2020/10/08 04:18

すみません、以後気を付けたいと思います。 ご指摘ありがとうございました。
m.ts10806

2020/10/08 04:19

質問は編集できますので、適宜調整してください。 と書いてます。 いつくるか分からない次回に回すより今対応してください
m.ts10806

2020/10/08 04:43

documentをalertしたらそうなるのは当然で、何を意図した結果なのかも記載して欲しいですね。 あと、コードブロック内はコードだけにしてください。リンクは別のマークダウンで対応できます。
guest

回答2

0

ベストアンサー

javascript

1// キーを押した時のイベントをドキュメントに指定 2window.document.onkeyup = function( event ){ 3 // キーが押された時に、実行される領域 4 console.log(event); 5}; 6 7// キーを押させる 8document.dispatchEvent( new KeyboardEvent( "keyup", 9 { 10 // キーを指定 11 key: "a" 12 } 13)); 14// ただし、codeプロパティを指定しないと、意図した挙動は実現できないと思われる 15// codeは実際のキーボードを押した時との対応表などを探し出して、自身で指定する

投稿2020/10/08 00:59

miyabi_takatsuk

総合スコア9528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nano_09

2020/10/08 04:26

window.document.onkeydown = function(event){ console.log(event); }; document.dispatchEvent(new KeyboardEvent("keydown",{ bubbles:"true", cancelable:"true", keyCode:"65" })); 上記で上手く動作しました。 ありがとうございました。
miyabi_takatsuk

2020/10/08 04:36

解決したなら、BA選出するか、自己解決投稿で質問を閉じましょう。
guest

0

この辺とかこの辺とか。試してはないんですが、調べたら出てくるのでまずは試してみてはいかがでしょうか?

投稿2020/10/07 13:47

yuuyu

総合スコア1139

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nano_09

2020/10/07 14:11

多少は調べたんですが理解ができなくて、質問させていただきました…。 一つ目の document.dispatcherEvent(new KeyboardEvent("keyup",{key:"a"})); これは、このコードが「a」を押したという情報を持っているんでしょうか?
nano_09

2020/10/07 14:14

例えば、一つ目ので行くと ちゃんと「a」が押されたか確認したいので alertで表示しようとなったときにどういう風に書けばいいですか?
yuuyu

2020/10/07 14:41

> このコードが「a」を押したという情報を持っているんでしょうか? いいえ、new KeyboardEvent("keyup",{key:"a"})でキーイベント("a"のキーボードを離した)を作成し、それを"document"に送信しています。 https://developer.mozilla.org/ja/docs/Web/API/EventTarget/dispatchEvent https://developer.mozilla.org/ja/docs/Web/API/KeyboardEvent > どういう風に書けばいいですか? 一度ご自身で書いてみて、それでも分からない箇所を質問してみてください。 ちなみにキー入力を受け取る判定はここ( https://qiita.com/riversun/items/3ff4f5ecf5c21b0548a4 )やここ( https://blog.katsubemakito.net/html5/javascript-keycode )など、調べたら出てきますので。
nano_09

2020/10/07 16:30

わからなかったので質問させていただきます。 documentに送信されたものを取りだし方がわかりません。
yuuyu

2020/10/08 01:11

> documentに送信されたものを取りだし方がわかりません。 修正欄にも書かれていますが、「どのあたりがどう理解できなかったか」と言うのが分からないと、丸投げと特に変わりません。 しかも今回であれば、先ほどのurlに書いているので、もう一度読んでくださいとしか言えなくなります。 実際に考えて、"取りだし方"をどのように書いてみたけど分からなかったのか。そういう所も記述してください。 あと回答からは少しズレますが、「〜分かりません」は質問ではなく報告です。
nano_09

2020/10/08 04:20

すみません、ご指摘ありがとうございます。 確かに丸投げになっていました。 以後、気を付けたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問