ホームページ  >  記事  >  ウェブフロントエンド  >  javascript:void(0) の意味と、href=# と href=javascriptvoid(0)_javascript スキルの違い

javascript:void(0) の意味と、href=# と href=javascriptvoid(0)_javascript スキルの違い

WBOY
WBOYオリジナル
2016-05-16 15:32:251639ブラウズ

void は Javascript の演算子で、式が評価されるが値を返さないことを指定します。

void 演算子の使用形式は次のとおりです:

1. javascript:void (式)

2. javascript:void 式

式は評価されるJavaScriptの標準式です。式の外側のかっこはオプションですが、記述することをお勧めします。

void 演算子を使用してハイパーリンクを指定できます。式は評価されますが、現在のドキュメントには何もロードされません。

例 - ハイパーリンクをクリックしてもジャンプしません

1:6b0da6d38e340e6a590cff29d8e276f55db79b134e9f6b82c0b36e0489ee08ed

2:0408054196e655f677973fb4d7c998655db79b134e9f6b82c0b36e0489ee08ed

3:6c83c0caad21deef893bd2b64d8d5a5c5db79b134e9f6b82c0b36e0489ee08ed

4:755146b0f224288ff1f9517809ac46ba5db79b134e9f6b82c0b36e0489ee08ed

リンクをクリックすると、ページはページの先頭までスクロールします。 # デフォルトのアンカー ポイントは #TOP です (実際のテストでは、スクロール バーが先頭までスクロールすることが判明しました)。デッドリンク。これらはすべてデッドリンクを表します。ジャンプして先頭には戻りません。

例 - location.href が自動的にジャンプしないのはなぜですか?

<a href="javascript:void(0)" onclick="delete('123')">删除</a>
function delete(id){
 if(confirm("确实要删除[为什么location.href不自动跳转?]吗?")) {
  location.href="/delete.jsp&#63;id=" + id;
 }
}

上記のコードをどのように確認しても問題はなく、location.href="/delete.jsp?id= id; このコードはなぜ機能するのでしょうか?

その理由は、void(0) がコードを次のように変更したためです:

<a href="javascript:delete('123')">删除</a>function delete(id) {
 if(confirm("确实要删除[为什么location.href不自动跳转?]吗?")) {
  location.href="/delete.jsp&#63;id=" + id;
 }
}

ページはすぐにジャンプし、該当するデータは正常に削除できることがわかりました。なぜですか?

void は演算子であるため、式は計算されますが、値は返されません。もちろん、現在のページの内容は変更されず、通常はジャンプしません。

説明

void 演算子は式を評価し、未定義を返します。この演算子は、式を評価したいが、その結果をスクリプトの残りの部分に表示したくない場合に最も役立ちます。

リンク (href) に javascript:void(0) を直接使用すると、GIF アニメーションの再生が停止するなど、IE で問題が発生する可能性があります。そのため、最も安全な方法は「#」を使用することです。リンクをクリックした後にページの先頭にジャンプしないように、onclick イベントは false を返すことができます。

追記: href=# と href=javascriptvoid(0) の違い

#"には位置情報が含まれます
デフォルトのアンカーポイントは #top で、これは Web ページの上部です
そして javascript:void(0) はデッドリンクを表すだけです
ページが非常に長く、閲覧リンクが明らかに # であるにもかかわらず、ページの上部にジャンプする場合があるのはこのためです
そして javascript:void(0)
これは当てはまらないため、スクリプトを呼び出すときは void(0)
を使用するのが最善です。 または 7ce8961e120a815eeb46b3f04acc755f

リンクを新しいウィンドウで開くいくつかの方法

1.window.open('url')

2. カスタム関数を使用する

<script>   
function openWin(tag,obj)   
{    
obj.target="_blank";    
obj.href = "Web/Substation/Substation.aspx&#63;stationno="+tag;    
obj.click();   
}   
</script> 
<a href="javascript:void(0)" onclick="openWin(3,this)">LINK_TEST</a> 
window.location.href="" 

----------------------------------------------- --- --------------------------------

# の場合は、個人的なお気に入りからいくつかの解決策が先頭に表示されます:

1:6b0da6d38e340e6a590cff29d8e276f55db79b134e9f6b82c0b36e0489ee08ed
2:0408054196e655f677973fb4d7c998655db79b134e9f6b82c0b36e0489ee08ed
3:6c83c0caad21deef893bd2b64d8d5a5c5db79b134e9f6b82c0b36e0489ee08ed
4:755146b0f224288ff1f9517809ac46ba5db79b134e9f6b82c0b36e0489ee08ed
5:84c8ecde5320398c03be1686cf845b0554bdf357c58b8a65c66d7c19c8e4d114 (FFでは表示できないようです)

----------------------------------------------- -----------------------------------

上記の内容は、javascript:void(0) の意味と、href=# と href=javascriptvoid(0) の違いをエディターが紹介したものです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。