js调试的问题,js高手请进!

注册百度帐号时需要填写邮箱,我发现, 这个输入框可以自动补全邮箱号,我想知道的是,用chrome调试器,怎么查看,这个输入框上都绑定了什么事件,它获得焦点或失去焦点时都执行了那个函数,或者说,我在输入框中鼠标右键黏贴触发了什么函数(貌似没有什么监听函数可以监听鼠标右键黏贴)?这些调试,我用chrome没找着相关功能,哪位高手指导一下,好让我js调试能力有质的飞跃,特别是,我搞不懂,没有什么函数可以监听鼠标右键黏贴,为什么在上面的输入框中鼠标右键黏贴,下面会出现邮箱号补全提示呢?怎么调试都没有发现问题所在。如何让,对输入框的操作直接断点到响应函数呢?比如说,我让输入框获得焦点,就让js调试中断到输入框获得焦点的处理函数上?

右键粘贴不是监听的鼠标事件,而是 onpaste (或 DOMCharacterDataModified)。


你可以复制粘贴下面的代码进行测试,看浏览器是如何监听鼠标和键盘的。


至于 Chrome 中的调试工具我不太熟悉,一般使用 Firefox + Firebug。


<!DOCTYPE html>
<html>
<head>
<meta charset="gb2312" />
<title></title>
<script type="text/javascript">
window.onload = function() {
var email = document.getElementById("email"),
debug = document.getElementById("debug");

function Debug(msg) {
debug.innerHTML += "<p>" + msg + "</p>";
debug.scrollTop = 99999;
}

email.onkeydown = function() {Debug("<p>键盘按下</p>");};
email.onkeyup = function() {Debug("<p>键盘抬起</p>");};
email.onkeypress = function() {Debug("<p>键盘按下并抬起</p>");};
email.onmouseover = function() {Debug("<p>鼠标经过</p>");};
email.onmouseout = function() {Debug("<p>鼠标离开</p>");};
email.onmousedown = function() {Debug("<p>鼠标按下</p>");};
email.onmouseup = function() {Debug("<p>鼠标抬起</p>");};
email.onchange = function() {Debug("<p>内容发生改变</p>");};
email.onfocus = function() {Debug("<p>获取焦点</p>");};
email.onblur = function() {Debug("<p>失去焦点</p>");};
email.onpaste = function() {Debug("<p>执行粘贴</p>");};
if(document.addEventListener) {
email.addEventListener("DOMCharacterDataModified", function(){
Debug("<p>执行粘贴</p>");
}, false);
}
};
</script>
</head>
<body>
<input id="email" type="text" />
<div id="debug" style="height: 500px; overflow: auto;"></div>
</body>
</html>

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-04-12
失去焦点可以用blur事件。

当元素失去焦点时触发 blur 事件。

这个函数会调用执行绑定到blur事件的所有函数,包括浏览器的默认行为。可以通过返回false来防止触发浏览器的默认行为。blur事件会在元素失去焦点的时候触发,既可以是鼠标行为,也可以是按tab键离开的

参数

fnFunctionV1.0

在每一个匹配元素的blur事件中绑定的处理函数。

[data],fnString,FunctionV1.4.3

data:blur([Data], fn) 可传入data供函数fn处理。

fn:在每一个匹配元素的blur事件中绑定的处理函数。

示例

描述:

触发所有段落的blur事件

jQuery 代码:
$("p").blur();

描述:

任何段落失去焦点时弹出一个 "Hello World!"在每一个匹配元素的blur事件中绑定的处理函数。

jQuery 代码:
$("p").blur( function () { alert("Hello World!"); } );

js 调试工具(js高手,cs高手请进)
1、Firebug调试功能很强大~2、可以使用firefox,或google浏览器chrome直接运行调试,ie8也不错 3、还可以使用js编写的html,可以直接将源代码copy进去运行~网上很多的地址。或者提供email,我可以发一个给你

js高手请进,校内网js调用!!!
他们学校是一个博客的形式 允许创建组群来进行消息发布 技术:Struts框架,validator 验证,filter 过滤 ,入 < > 一类的 标签字符不允许提交 我采用 将post 数据 转 get 方式 提交 无效果 encodeUrl()了 希望我这些 数据 能 帮你找到高手帮忙!!不过 我觉得 还是别浪费时间在这上面 就算这次破解了...

javascript 连接问题 很难 高手请进!!!
JavaScript被限制在浏览器内,当然存在着一些漏洞(我不清楚有那些漏洞)可以使其突破限制,所以有时候人们担心JavaScript的安全性 对于调用本地文件的做法只有ActiveX可以做到,问问那些人吧

JS高手请进!
粗略看了一下,这应该是一个滚动的js代码 通过定时器修改滚动div的scrollHeight值,达到tween的目的 with(icefable1){ style.width=0;style.height=marqueesHeight;style.overflowX="visible";style.overflowY="hidden";noWrap=true;onmouseover=new Function("stopscroll=true");onmouseout=new Function("...

js 高手请进,关于var 的问题
js是所类型语言,声明变量时都是用var,然后可以赋给这个变量任何值,不管是什么类型。你给它整数型,它能存储,你给它字符串型,它也能存储。如果声明的是一个数组,那么这个数组的元素可以是任何类型,这个数组可以同时保存各种类型。 虽然如此说,但js只是弱类型,而非没有类型。使用typeof可以查看...

js高手请进啊!!静态页面搜索问题
如果不考虑时间的话,你可以把整个HTML页面看作一个DOM对象,利用javascript,从document这个根元素开始逐节点递归搜索。

javascript变量清空的问题?高手请进
大哥,现在什么年代了?!以为还是16M内存的年代吗?节省你那点内存能有什么效率不效率的?把心思用在算法的优化上,比你省那点资源更有效,JS是弱类型编程语言,自然有它的好处,难道你想改写javascript内核?

各位高手请进,我的电脑在打开网页的时候,有时会弹出一个调试程序的指令...
各位高手请进,我的电脑在打开网页的时候,有时会弹出一个‘0x019d341a'指令引用的’0x00000000'内存,该内存不能为read',终止程序,请单击‘确定’要调试程序,请单击‘取消’以前没有这种情况,就这次重装了系统才有的大虾帮帮忙。 展开  我来答 5

js中面向对象的问题,高手请进!!
的确,实例u中有个属性,指向Users的prototype对象,然而,这个属性在IE浏览器中是无法被访问到的。在firefox,chrome等标准浏览器中,则表示为__proto__属性,可以通过u来访问 下面代码在firefox通过 function Users(){} var u=new Users();alert(u.__proto__); \/\/object alert(u.__proto__...

javascript高手请进,关于表格分页问题?有个15行的表格 每页显示5行...
判k的范围,不然在tr数量不为5的整倍数时会出问题。另外cursor: hand是IEonly,换成cursor: pointer。

相似回答