在學習《javascript基礎教程》第八版時,有一個小細節開始不是很明白,查了一些資料后,理了一下思路。
例子的html代碼:
<!DOCTYPE html> <html> <head> <title>Rotating Banner with Links</title> <script src="script08.js"></script> <link rel="stylesheet" href="script01.css"> </head> <body> <div class="centered"> <a href="linkPage"><img src="images/banner1.gif" id="adBanner" alt="ad banner"></a> </div> </body> </html>
例子的js代碼:
window.onload = initBannerLink; var thisAd = 0; function initBannerLink() { if (document.getElementById("adBanner").parentNode.tagName == "A") { document.getElementById("adBanner").parentNode.onclick = newLocation; } rotate(); } function newLocation() { var adURL = new Array("negrino.com","sun.com","microsoft.com"); document.location.href = "http://www." + adURL[thisAd]; return false; } function rotate() { var adImages = new Array("images/banner1.gif","images/banner2.gif","images/banner3.gif"); thisAd++; if (thisAd == adImages.length) { thisAd = 0; } document.getElementById("adBanner").src = adImages[thisAd]; setTimeout(rotate, 3 * 1000); }
a本身會觸發一個鏈接,a的onclick會觸發一個鏈接,onclick事件執行后會觸發a本身的鏈接,為了阻止a本身鏈接的觸發,需要對onclick事件的函數返回false。
return true:返回正常的處理結果。
return false:返回錯誤的處理結果;終止處理;阻止提交表單;阻止執行默認的行為。
return:把控制權返回給頁面。
若將html代碼中的
<a href="linkPage"><img src="images/banner1.gif" id="adBanner" alt="ad banner"></a>
改為:
<a href="#"><img src="images/banner1.gif" id="adBanner" alt="ad banner"></a>
此時去掉js代碼中的return false,也可以實現同樣的效果。
