首页 新闻 搜索 专区 学院

为什么 window.onload 在这里能阻止链接跳转?

0
[待解决问题]
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 语句,点击还是会默认跳转。

xxtang的主页 xxtang | 菜鸟二级 | 园豆:202
提问于:2017-12-28 15:43
< >
分享
所有回答(1)
0

links[i].onclick = function(){  return false;}

 

超链接被点了之后不再跳转,和window.onload没有直接关系。onload在你的代码中所起的作用只是挂接超链接的onclick事件处理函数,也就是那个匿名函数。关键是这个函数最终返回了false,等于通知浏览器在超链接被点击后,除了执行匿名函数的代码,不再执行浏览器的默认动作(对于超链接而言,浏览器响应它们的点击事件的默认动作就是 跳转)

西漠以西 | 园豆:1670 (小虾三级) | 2017-12-28 15:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册