83

今まで見たことのない奇妙なものに出くわしました。

javascript:a=a+10;

javascript:上記の行は正しいようで、パーツが存在しなかったかのように (少なくとも Firefox では) うまく評価されます。

DHTMLの暗黒時代に使用された古いjavascript:void(...)スタイルの目的は理解できますが、単純な JavaScript コードでこの接頭辞を使用するのに役立つ方法を理解することはできません。<a href=".."/>

何か特別な意味がありますか?

4

4 に答える 4

97

javascript:」はラベルです。" " を使用してループから抜けることができるように、ループを識別するために使用することになっていますが、break javascript;ここでは誤用されています。無害ですが、ループではないステートメントにラベルを追加することはお勧めできません。

于 2013-09-02T09:31:03.287 に答える
12

JavaScript は、 HTML アプリケーション(HTA)の Web ページからも使用できます。HTA では、 VBScriptと JavaScriptを組み合わせて使用​​できます。次のようにアプリケーションでスクリプトを使用すると、スクリプト言語は自動的に VBScript に設定されます。

<SCRIPT LANGUAGE='VBScript'> MsgBox 'Hi!'</SCRIPT>

そのため、次のような JavaScript の onclick イベントを持つ要素はエラーになります。

<a id="myLink" href="#" onclick="MyFunction();return false;">Click me!</a>

これを解決するには、言語を明示的に JavaScript に設定します。

<a id="myLink" href="#" onclick="javascript:alert('Javascript Executed!');return false;">Click me for Javascript!</a>

またはVBScriptで

<a id="myLink" href="#" onclick='vbscript:msgbox "VBScript Executed!"'>Click me for VBScript!</a>

注: これはまれなケースであることは承知していますが、javascript:混合言語の HTA を作成しているときに遭遇したラベルの実際の使用法です (このコンテキストでラベルと呼んでもいいですか?)。

于 2013-09-02T10:29:38.823 に答える
-2

ラベルとしては役に立たないという点には同意しますが、場合によってはそれでも有用です。たとえば、アドレス バーから短いスニペットを実行するか、ブックマークレットを作成する必要があります。ただし、この場合はjavascript:、疑似プロトコル スキームのようになります。

于 2013-09-02T09:43:14.497 に答える