質問

いくつかの人々を使用 void オペレーターをコードです。私も見たこ href 属性: javascript:void(0) るように見えませんが良い javascript:;

それでは、その正当性を利用 void オペレーター?

役に立ちましたか?

解決

説明

:リンクするにおけるその使用
  

これは、ブックマークレット理由があります   多くの場合、(無効内のコードをラップ)または   ない無名関数   ブラウザを停止するには何も返さ   の結果を表示しようとしているから、   ブックマークレットを実行します。ために   例:

javascript:void(window.open("dom_spy.html"))
     

あなたは直接返すコードを使用している場合   何か(新しいウィンドウインスタンスで   この場合は)、ブラウザが終わるだろう   その表示:

javascript:window.open("dom_spy.html");
     

のFirefoxでは上記の意志表示:

[object Window]

他のヒント

undefined 値はダイレクトアクセス可能なJavaScriptのでES1.3.

オペレーター void <expression> したが含まれるアクセスを許可す。

ることもあり、特に作業する場合は、ウェブAPI(イベントハンドラー)をこえるかもしれないが、この表現は一貫して undefined.

場合に undefined 物件に追加されたグローバルオブジェクトES1.3体 void となった非自明である。

そのためのご質問です。

次の点を考慮します:

<a href="javascript:void(fish=document.getElementById('foo').value);void(document.getElementById('bar').value=fish);">With Void</a>

<a href="javascript:fish=document.getElementById('foo').value;document.getElementById('bar').value=fish;">Without Void</a>

<input type="text" id="foo" value="one fish" />
<input type="text" id="bar" value="no fish" />

最初のリンクは、テキストフィールドの値を交換します。 2番目のリンクは、テキスト「1匹の魚」で新しいページを開きます。あなたがjavascript: linkを使用する場合は、分式はnullまたはundefined以外のものを返し、ブラウザは、リンクが何をすべきかのようにそれを解釈します。 void()機能内のすべての式/たstatmentsをラップすることで、あなたが実行するコードのあなたの全体のスニペットを確保します。最近では、これはonclick属性を使用して、ブックマークレットで使用するのは主である、または別のJavascriptのブロック/ファイルにイベントハンドラを設定すると、「標準」です。

javascript:javascript:void()については、最初の文はあいまいです。あなたは「ねえ、私はいくつかのJavaScriptを実行したい」と言っているが、その後、あなたは、任意のコードを提供していません。これは、ブラウザがここに何をすべきかは必ずしも明確ではありません。第二の文を使用すると、「ねえ、いくつかのJavaScriptを実行します」と言っていて、あなたのコードは、最終的には、ブラウザの手段は、「何もしない」知っている、undefinedを返します。

私がここにいるので、

、私はjavascript:またはjavascript:void();のいずれかを使用してマークアップを気にほとんどの人々との好意から落ちていることも指摘します。行うには良い事はあなたのonclickハンドラがfalseを返す必要があり、およびリンクJavaScriptがオフになっている、またはそのようなNoScriptのようjavascriptのブロッカーを使用している人々のために理にかなっているページ/リソースに向けるます。

持っています
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top