スポンサーサイト





上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

  • Comments (Close): -
  • TrackBack (Close): -

javascriptスキーム





onclickの後のjavascript: という記述はどういう意味があるかという話です。

<html>

<head>

</head>

<body>

<p><a href="javascript:;" onclick="javascript:alert('Hello')">(1)「javascript:」の記述あり</a></p>

<p><a href="javascript:;" onclick="alert('Hello')">(2)「javascript:」の記述なし</a></p>

<p><a href="javascript:alert('Hello')">(3) スキーム</a></p>

</body>

</html>


(1)から(3)を実行してみても、当然かもしれませんが、特に違いはありません。

(1)と(2)の

a href="javascript:;"

の部分は、リンクを無効にするものです(参照 : javascript:void(0))。

onclickの後はJavaScriptに決まっているのですから、javascript: の部分があろうがなかろうが特に違いはないと考えられます。


一方、(3)はちょっと要注意です。

(3)の a href="javascript: は URI の一部でスキームにあたります。href属性値は URI を記述する場所ですので、"javascript:" (javascriptスキーム) から始まる URI を指定することができます。古くからある書き方ですが、リンクではないにもかかわらずa要素を使うことから好ましくないマークアップといわれています。

好ましくないかもしれませんが、簡潔に書けるのは魅力ですね。

(3)で javascript: の部分を省略することはできません。省略すると、ブラウザは後述するコードを相対参照として扱うからです。

つまり、

<a href="alert('test');">test</a>

のように書くと、ブラウザは "alert('test');" をファイル名と認識しサーバにリクエストし、「Internet Explorer ではこのページは表示できません」のようなエラーが返ってきます。

javascript: の部分は、相対参照ではありませんという重要な意味があります。


関連記事

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

Comments:

Comment Form
Only inform the site author.

Trackback+Pingback:

TrackBack URL for this entry
http://javascriptmania.blog111.fc2.com/tb.php/31-5343eb6a
  • 閉じるボタン
月別アーカイブ
リンク
カテゴリ
RSSリンクの表示
QRコード
QR
最新コメント
最新トラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。