次の違いは何ですか?
onClick="javascript: function('value');"
onClick="function('value');"
関数呼び出しの前にjavascript:
を使用するのはいつですか、またその理由は何ですか?
javascript:
プレフィックスを使用せずに関数を呼び出すことはできますか?
違いを理解するのを手伝ってください。
onclick
、onchange
、onsubmit
などの要素のインラインイベントハンドラーでは、javascript:
は必要ありません必要ありませんプレフィックス-よく目にする理由は、以下で説明するhref
構文と混同されるためです。エラーは発生しません label -と解釈されると思いますが、不要です。
関数を呼び出すか、「単純な」JSステートメントを実行するかは関係ありません。どちらの方法でも、javascript:
を含めないでください。つまり、これら3つすべてが有効です。
onclick="doSomething('some val');"
onclick="return false;"
onclick="doSomething(); doSomethingElse(); return false;"
インラインイベント属性を使用している場合は、javascript:
プレフィックスを使用しないでください。
(「ifインラインイベント属性を使用している」と言うのは、この方法が本当に時代遅れだからです。スクリプトブロックでJSを使用してイベントハンドラーを割り当てる方がよいでしょう。)
次のようにjavascript:
要素のhref
属性からJavaScriptを実行する場合にのみ、<a>
プレフィックスが必要です。
<a href="javascript: someFunc();">Whatever</a>
これは、ブラウザは通常href
にURIが含まれていることを期待しているため、javascript:
プレフィックスは代わりにJSコードを期待するように指示します。ただし、JSが無効になっているユーザーにはページが機能しないため、これを行うことはお勧めしません。 JSを有効にするようにユーザーに指示するページにユーザーを誘導するhref
を含め、JS機能を実行するためにonclick
を含めることをお勧めします。
<a href="/enableJS.html" onclick="doSomething(); return false;">Whatever</a>
そうすれば、リンクは、JSが有効になっているかどうかに関係なく、ユーザーにとって有用なことを行います。クリックハンドラの最後にあるreturn false
は、クリックのデフォルトの動作(指定されたURLに移動すること)を防ぎます。
最初のものは完全に冗長です label 。
関数呼び出しの前に「javascript:」を使用する必要があるのはいつですか。また、使用する理由は何ですか。
決して。 (まあ、ほとんど。javascript:
スキームURIで使用しますが、ブックマークレットを作成している場合にのみ使用する必要があり、onclick
属性には表示されません)。
(javascript:
URIは、 cargo-cultonclick
属性値の前にラベルを付ける方法が由来する場所です。)
「javascript:」を使わずに関数を呼び出すことはできますか?
はい。