void與

在Html中,<a/>標籤表示超鏈接,它的href屬性表示要跳轉的地址。但是有時候我們想在單擊某個連接的時候執行一個JavaScript函數或者一段JavaScript代碼,這時就可以使用void搭配Js函數來實現。

 

1.href與void

在<a/>的href屬性中使用"javascript:"加上想要執行的代碼來達到點擊執行Js代碼的目的。但是當這些Js代碼的最終返回值或對象不是undefined的話(函數的默認返回值是undefined),網頁的內容會被替換成表示該返回值或對象的字符串(使用toString()轉換)。(Chrome中不存在該現象。)因此要使用void來忽略函數返回的值或對象。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>voidTest.html</title>
		
	<script type="text/javascript">
		//測試函數,當單擊鏈接的時候彈出信息
		function voidTest()	
		{
			alert("Test!");
			return "From voidTest()";	//返回字符串
		}
	</script>
  </head>
  
  <body>
  	<!-- 期待的效果是單擊鏈接彈出信息,不改變頁面結構和內容 -->
  
  	<br>
  	<!-- 不使用void,點擊後整個頁面只有From voidTest()(Chrome不影響) -->
    <a href="javascript:voidTest()">Without void!</a>
    <br> <br>
    <!-- 使用void,點擊後頁面內容不改變 -->
    <a href="javascript:void voidTest()">With void!</a>
    <br> <br>	
    <!-- 也可以加括號 -->
    <a href="javascript:void(voidTest())">With void()!</a>
    
  </body>
</html>

  

 2.href、onclick與void

      當我們希望單擊鏈接的時候執行一些Js函數,並且希望由鏈接的click事件觸發,這個時候也要使用void來阻止超鏈接的跳轉。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>voidTest.html</title>
	<script type="text/javascript">
		//測試函數,當單擊鏈接的時候彈出信息
		function voidTest()	
		{
			alert("Test!");
		}
	</script>
  </head>
  
  <body>
  	<!-- 期待的效果是單擊鏈接彈出信息 -->
  
  	<!-- 不加href,<a/>顯示成普通文字而不是超鏈接,onclick事件無法觸發 -->
    <a οnclick="voidTest">Without href!</a>
    <br><br>
    <!-- 添加空的href屬性,點擊時會重載該頁面 -->
    <a href="" οnclick="voidTest">With empty href!</a>
    <br><br>
    <!-- href屬性爲void,正常 -->
    <a href="javascript:void" οnclick="voidTest()">With javascript:void in href!</a>
    <br><br>
    <!-- href屬性爲void(0),正常 -->
    <a href="javascript:void(0)" οnclick="voidTest()">With javascript:void(0) in href!</a>
    
  </body>
</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章