ie、firefox等浏览器中,调试js的问题。

请教web前端师们,ie、firefox各大主流浏览器调试过程中,在没有打断点的情况下,当我点击某个按钮时,我想自动跳入该事件的js代码, 如何做到? 谢谢。

第1个回答  2014-02-26
  您好!很高兴为您答疑!

  有一个方法可以,但有两个条件:
  1.原本的事件是通过注册而非直接赋值声明的
  2.只能通过IE浏览器调试
  您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。本回答被网友采纳
第2个回答  2013-06-06
之前没看清题,不加断点无法暂停代码,为什么要不加断点?追问

在实际开发中,页面中一般会导入很多js文件; 而当我们触发当前这个事件时, 往往可能不知道这个事件的函数写在哪个js文件里, 所以打断点也就不知道在哪里打哈。

追答

有一个方法可以,但有两个条件:

    原本的事件是通过注册而非直接赋值声明的

    以onclick事件为例,即原本的事件不能这样声明:xxx.onclick=function(){ ... };

    只能这样声明:xxx.attachEvent("onclick",function(){ ... }); 或者jQuery的click方法也可以

    只能通过IE浏览器调试

满足以上条件,那么在所有js文件标签后面在声明一个相同的事件,随便写点什么,由于ie浏览器对事件的执行顺序是最后注册的优先,最先注册的靠后,所以在最后你写的这个事件中打断点,就可以跳到原本的事件中了

追问

其实道理是你所说的这样, 但如果我在别人网站上调试, 都不知道入口函数(也就是最后的这个事件)写在哪里的, 我一般就通选择器(id或class)去查找这个入口函数, 但很费时间。。 所以我在想有没有一个好点的方法可以更快地定位到入口函数, 就像Visual Studio面的F12跟踪。。。

追答

如果是别人的网站,你可以把页面存到本地,然后按上面步骤修改一下,再调试


也可以直接在调试界面引入一个js文件,这个js文件就是你新加入的事件,然后在这个js文件中打断点:

本回答被提问者采纳
第3个回答  2013-06-06
你自己写的JS不知道放在哪个文件里面吗?追问

关键是我想调试人家的网站的js哈。

追答

这个没办法知道,需要你自己去JS的源码里面去找。
以我薄弱的理解,你说的断点应该是就发生JS事件的那一段代码是吧。现在好多的JS都是封装好的JS函数+JS代码混合使用的,完全干净的剥离出来还是需要一定的专业知识的

相似回答