<html>
<body>
<script language="JavaScript" type="text/javascript">
function test(){
alert("testです")
}
</script>
<input id="btntest" type="button" value="test" onclick="test()"/>
</body>
</html>
このhtml文書に対し、
・test();
・document.getElementById("btntest").click;(ByTagName等を使用しても同じ方法とする)
上記方法以外にJavaScriptを用いて、
test()を実行するにはどうすればよいでしょうか?
var eventobj = document.getElementById("btntest").onclick;
eval(eventobj);
上記みたいな形でevalをよくわからずに試してみましたがダメでした。
No.2ベストアンサー
- 回答日時:
関数もオブジェクトとして取得できるし、取得したオブジェクトも関数型になるのでカッコを付ければ呼び出し・実行できます。
<html>
<body>
<script language="JavaScript" type="text/javascript">
function test(){
alert("テストです")
}
function test2(){
var evHandler = document.getElementById("btntest").onclick;
//alert(typeof(evHandler));//onclickとそれを保存した変数は関数型
//カッコを付ければそれの呼び出し。
evHandler();
}
</script>
<input id="btntest" type="button" value="test" onclick="test()"/>
<input id="btntest2" type="button" value="test2" onclick="test2()"/>
</body>
</html>
おぉ!そうか、なるほど。
そういえば無名関数に名前を与える次のような有名なパターンがありますね。
var func = function(){}
これを実行するときは、func();とするわけですし、
それと同じことなんですね。
とてもすっきりしました。
回答ありがとうございました。
No.1
- 回答日時:
なにをしたいのかよくわかりませんが、かっこをつけるだけでは?
<html>
<body>
<script language="JavaScript" type="text/javascript">
function test(){
alert("testです")
}
</script>
<input id="btntest" type="button" value="test" onclick="test()"/>
</body>
</html>
<script>
document.getElementById("btntest").click();
</script>
この回答への補足
すみません、カッコは付け忘れです。
document.getElementById("btntest").click();
以外の方法でお願いします。
やりたいこととしては、
イベントハンドラを変数などでいったん保持し、
それを再度実行できるのか?ということです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
getElementsByNameで要素が取得...
-
初心者javascript ウィンドウサ...
-
function の return 値を表示し...
-
iframeの中から親ページをスム...
-
SCRIPT5007: 未定義または NULL...
-
何度もリピートする、カウント...
-
キーを押している間の時間を計...
-
マウスクリックした地点のテキ...
-
JavaScriptでiframeの内容を「...
-
出荷予定日を表示するJavaスク...
-
チェックボックスの選択パター...
-
クリックすると別の文章を表示する
-
AjaxでDBから取得したデータを...
-
フォーカス移動抑止について
-
自動ジャンプでフォームデータ...
-
<a href="#" …>の意味を教えて...
-
javascriptでbgmを自動再生する...
-
セキュリティ保護の警告が出な...
-
複数のJavascriptを1つのscrip...
-
WEB上で編集できない、スク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
getElementsByNameで要素が取得...
-
JavaScript でキーを送る
-
SCRIPT5007: 未定義または NULL...
-
function の return 値を表示し...
-
JavaScriptでiframeの内容を「...
-
フォーカス移動抑止について
-
リンク移動先のURLを取得
-
bodyタグのfocus
-
ボタンのID名を取得するには?
-
IEの拡大・縮小機能をWebページ...
-
javascriptでクリックしたリン...
-
指定したセルにrowspan属性を適...
-
「オブジェクトを指定してくだ...
-
htaでVBSのソースを書いたらエ...
-
AjaxでDBから取得したデータを...
-
jQuery ツールチップの中のリンク
-
XMLHTTPRequestでstatusが0に
-
JavaScriptでの西暦下2桁での表...
-
初心者javascript ウィンドウサ...
-
ページ全体を検索して特定文字...
おすすめ情報