- 締切済み
関数内でonclickをさせたい
以下に示すような動作をさせたいのですが、手段はあるでしょうか? ご教示の方よろしくお願いいたします。 <html> <head> <script type="text/javascript"> function test1(){ ここでtest2というリンクをクリックしたことにしたい。 document.getElementById("test2").onclickとか勘でやってみたけどダメでした。 } </script> </head> <body> <img src="hoge.jpg" name="test1" onclick="test1();"> <a href="hoge.html" id="test2">test2</a> </body> </html>
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- think49
- ベストアンサー率59% (285/482)
質問者さんのHTMLなら以下のコードで動くこと確認しました。 ---- <img src="hoge.jpg" name="test1" onclick="test1();"> <a href="hoge.html" id="test2">test2</a> <script type='text/javascript'> function test1(){ location.href=document.getElementById("test2").href; } </script> ---- > document.getElementById("test2").onclick とか勘でやってみたけどダメでした。 document.getElementById("test2").onclick() は <a href="hoge.html" id="test2">test2</a> にも onclickが定義されていないと働きません。 ---- <img id="test1" src="test.gif" onclick="document.getElementById('test2').onclick();"> <a id="test2" href="test.html" onclick="test2();">test2</a> <script type='text/javascript'> function test2(){ location.href=document.getElementById('test2').href; } </script> ---- これで動きますが、これなら両方とも test2() を実行した方がスマートですね。
- vonvonvon
- ベストアンサー率0% (0/0)
<html> <head> <script type="text/javascript"> window.onload=function(){ document.getElementById("test2").onclick=Test2_wo_click; } function Test2_wo_click(){ window.location="hoge.html"; } function test1(){ document.getElementById("test2").onclick(); } </script> </head> <body> <img src="hoge.jpg" name="test1" onclick="test1();"> <a href="javascript:Test2_wo_click()" id="test2">test2</a> </body> </html>
- sh_hirose
- ベストアンサー率66% (56/84)
test1がリンクに飛ぶだけの処理だとすれば一般的なのは <a href="hoge.html"><img src="hoge.jpg"></a>
- yambejp
- ベストアンサー率51% (3827/7415)
リンク先に飛びたいというなら一工夫 function test1(){ var tag=document.getElementById("test2"); if(tag.nodeName=="A") location.href=tag.href; }
- steel_gray
- ベストアンサー率66% (1052/1578)
フォームの部品なら ~.click() でいいんだけど、リンクに効くものがあるかどうかはわからない。 一部ブラウザはclick()がリンクにも効くみたいだけど。
- OKbokuzyo
- ベストアンサー率43% (130/296)
onclickに「()」が抜けてる。 onclick();
補足
()をつけて確認してみましたができませんでした。引き続きどなたかご教示よろしくお願い致します。