回调函数是我们自定义的,没有默认这一说!你所描述的默认行为,是不是说,单击后标签变了颜色,如果是,那就是浏览器默认的渲染;如果说默认行为是实际触发了某个事件,那肯定是给a
标签绑定了onclick
事件
不是CSS样式的改变,而是会默认跳转指定位置,还有像滚动事件(onscree)默认行为就是滚动条移动,像这种滚动条的移动可不是只由CSS样式就可以做到的,必须配合JS代码才可以确定是向上还是向下,精确上什么地方。a标签的点击事件默认行为会跳转到指定位置,这个也得配合JS代码才能完成。
我想说的就是这些JS代码,也就是这些事件默认行为的事件处理程序(也可理解为浏览器默认指定的回调)浏览器写在哪个位置?是浏览器隐藏了这些,还是没有隐藏只是在一个什么对象属性上面?
@JS初学: js是作为浏览器的脚本,进行用户交互,至于你说的事件处理程序其实是JavaScript在浏览器环境中操作DOM(应用编程接口),浏览器会先将HTML进行解析形成DOM树,再js操作DOM,DOM再对html进行操作,是这样一个流程
@柏溪: 那这个事件默认行为的事件处理程序在哪个API上,是经浏览器解析生成的标签a对象上,还是触发事件生成的事件对象上(Event)
可以看看这位写的,介绍很详细https://www.cnblogs.com/shihaiying/p/11724361.html
我就是想说 a.onclick为什么是null,明明有默认的事件处理程序,即使后来开发人员给a.onclick添加上自己的事件处理程序,那开发人员写的和浏览器写是是覆盖,是合并,合并后先执行谁,这些规则总得体现出来吧,不让开发人员修改,也得让开发人员看到啊
@JS初学: 开发人员没事去看一大堆的默认属性?每一个对象,变量,函数在不为null的情况下都有原型,在原型里面有一堆默认的属性,而其本身也是对象,在你进行操作时,起码要获取对象再操作,对象中就包含了这些属性,也就是你是先创建了原型对象再进行修改对象属性操作
@JS初学: 你说的默认跳转指定位置,是a标签的锚点定位吧
@三人乐乐: 不管是跳转到锚点位置还是跳转到新的页面,总得有对应的事件处理程序啊,不然你点击a标签,凭什么就能跳转,点击其它标签为什么就不跳转?就是因为你点击a标签,触发了点击事件,然后就响应了与之对应的事件处理程序,那么问题就是这个事件处理程序在哪?
@JS初学: 之所以能触发锚点,这是a标签的特性,a标签的定义就是跳转,最重要的属性就是href,这个属性,浏览器自动识别,而别的标签不写事件,就不会跳转。你之所以想说,不触发单击怎么会跳转,那是因为你用的a标签,你换其它标签,就不会出现这个问题了。至于这个事件处理程序在哪,这个可能要了解浏览器相关知识了~
dom节点就是接口啊,html解析-->dom树-->js运行-->通过dom-->修改html