请教web前端师们,ie、firefox各大主流浏览器调试过程中,在没有打断点的情况下,当我点击某个按钮时,我想自动跳入该事件的js代码, 如何做到? 谢谢。
在实际开发中,页面中一般会导入很多js文件; 而当我们触发当前这个事件时, 往往可能不知道这个事件的函数写在哪个js文件里, 所以打断点也就不知道在哪里打哈。
追答有一个方法可以,但有两个条件:
原本的事件是通过注册而非直接赋值声明的
以onclick事件为例,即原本的事件不能这样声明:xxx.onclick=function(){ ... };
只能这样声明:xxx.attachEvent("onclick",function(){ ... }); 或者jQuery的click方法也可以
只能通过IE浏览器调试
满足以上条件,那么在所有js文件标签后面在声明一个相同的事件,随便写点什么,由于ie浏览器对事件的执行顺序是最后注册的优先,最先注册的靠后,所以在最后你写的这个事件中打断点,就可以跳到原本的事件中了
追问其实道理是你所说的这样, 但如果我在别人网站上调试, 都不知道入口函数(也就是最后的这个事件)写在哪里的, 我一般就通选择器(id或class)去查找这个入口函数, 但很费时间。。 所以我在想有没有一个好点的方法可以更快地定位到入口函数, 就像Visual Studio面的F12跟踪。。。
追答如果是别人的网站,你可以把页面存到本地,然后按上面步骤修改一下,再调试
也可以直接在调试界面引入一个js文件,这个js文件就是你新加入的事件,然后在这个js文件中打断点:
关键是我想调试人家的网站的js哈。
追答这个没办法知道,需要你自己去JS的源码里面去找。
以我薄弱的理解,你说的断点应该是就发生JS事件的那一段代码是吧。现在好多的JS都是封装好的JS函数+JS代码混合使用的,完全干净的剥离出来还是需要一定的专业知识的