function showPic(whichpic){ // if(!document.getElementById("placeholder")) return false; var source =whichpic.getAttribute("href"); //获取 图片列表中的的 href属性 var placeholder =document.getElementById("placeholder"); //获取 占位符元素 placeholder.setAttribute("src",source);//将占位符的 src换成图片的 src if(document.getElementById("description")){ var text=whichpic.getAttribute("title");//获取图片的 title属性 var description =document.getElementById("description");//获取元素 description.childNodes[0].nodeValue=text; } // return true; } window.onload = prepareGallery;//绑定到 onload,文档加载后执行 function prepareGallery(){ //如果浏览器不支持,离开 // if (!document.getElementsByTagName) return false; // if(!document.getElementById) return false; // if(!document.getElementById("imagegallery")) return false;//预防性措施,即使以后删除图片,js 也不会出错 var gallery = document.getElementById("imagegallery"); //获取 ul元素 var links = gallery.getElementsByTagName("a"); //获取 a标签 for(var i=0;i<links.length;i++) { links[i].onclick = function(){ //绑定事件并声明函数 showPic(this);//调用 showPic函数 return false;//默认不再打开链接 } } }
使用后可以阻止 链接跳转,而注释后,即使是添加了 return false 语句,点击还是会默认跳转。
links[i].onclick = function(){ return false;}
超链接被点了之后不再跳转,和window.onload没有直接关系。onload在你的代码中所起的作用只是挂接超链接的onclick事件处理函数,也就是那个匿名函数。关键是这个函数最终返回了false,等于通知浏览器在超链接被点击后,除了执行匿名函数的代码,不再执行浏览器的默认动作(对于超链接而言,浏览器响应它们的点击事件的默认动作就是 跳转)