• ベストアンサー

href=" " onclickを使う場合につい

質問です。 a href="#" onclick は思ったように動作しました a href="/" onclick では、一部のブラウザで動作しませんでした。 a href="/"は間違いなのでしょうか。 よろしければ教えてください。 

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

単にトップに帰るだけなら <body id="TOP"> とでもしておいて <a href="#TOP">トップ</a> でよい。 <a href="/">は、そのサイトのルートへのリンクを表しますよ。 たとえば、 hoge.com 内のどこにいても、<a href="/">でトップに戻ります。 このふたつはまったく違います。 <a href="#">は間違っています。#に続いて文字列が必要。 なんのために、ページトップへ移動するためにreturn:fales なのですか?

tella8
質問者

お礼

ご回答いただきありがとうございます。 >なんのために、ページトップへ移動するためにreturn:fales なのですか? <a href="/" onclick="hoge(); "のhogeには、位置(ページの左上)を指定して、そこにジャンプするというjsを書きました。

その他の回答 (4)

回答No.5

そもそもJavaScriptで移動させたいのか、アンカーで移動させたいのかどっちなんですか? アンカーなら、No.3で答えが出てますし、JSでやりたいのであれば、JSが間違っている可能性もありますよ? onclick="return false;"は、デフォルトのaタグの動作をキャンセルする為に入れています。 しかし、<a href="/" onclick="hoge();return false;">でルートにページ遷移する場合は、onclickが正常に動作していないと思われます。

tella8
質問者

お礼

ご回答いただきありがとうございます。 >そもそもJavaScriptで移動させたいのか、アンカーで移動させたいのかどっちなんですか? >アンカーなら、No.3で答えが出てますし、JSでやりたいのであれば、JSが間違っている可能性もありますよ? 参考にしたソースにJavaScriptが使われいたのでjsを使った方が良いのだと思っていました。 アンカーで移動させることができることをN0.3の方に教えていただきましたので、そちらにしたいと思います。 >しかし、<a href="/" onclick="hoge();return false;">でルートにページ遷移する場合は、onclickが正常に動作していないと思われます。 教えていただきありがとうございます。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.4

>そこにジャンプするというjsを書きました。 しかし、javascriptを無効にしているユーザーエージェントには・・・ 可能ならjavascriptを使わないようにすべきだと思います。

tella8
質問者

お礼

ご回答ありがとうございます。 >しかし、javascriptを無効にしているユーザーエージェントには・・・ そうですね。 jsを使わない方法に直してみます。

回答No.2

>a href="/"は間違いなのでしょうか。 文法上は正しいです。 ですが、文法の正しさと「思った通り」かどうかとは別問題です。 どのような動作が思った通りで、どのように記述したのかがわからなければアドバイスしようがありません。 もしかすると、return falseを書かない方が「思った通り」になる可能性もあります。

tella8
質問者

お礼

ご回答頂きありがとうございました。 >もしかすると、return falseを書かない方が「思った通り」になる可能性もあります。 このようなこともあるのですね。 初めて知りました。 いろいろ書き足したり抜いたりしてみたいと思います。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>a href="/" onclick では、一部のブラウザで動作しませんでした。 href="/"の場合はページを移動してしまうので、想定した動作にならないかも 実際のところonclickで指定した処理にreturn falseするようにすると、 リンク移動の処理が回避されるのでいけるかもしれません

tella8
質問者

お礼

ありがとうございます。 >href="/"の場合はページを移動してしまうので、想定した動作にならないかも >実際のところonclickで指定した処理にreturn falseするようにすると、 >リンク移動の処理が回避されるのでいけるかもしれません 早速このようにしてみました。 <a href="/" onclick="hoge(); return false" > ですが思ったような動作にはなりませんでした。 falseの後ろには;が必要でしょうか? ページの先頭に移動するという動作をしたいのですが、その場合は href="#"だと問題が起きてしまうのでしょうか? よければ教えていただけますと幸いです。

関連するQ&A