跟踪input值改变的兼容处理兼容处理input控件值改变事件兼容处理 @ IE,FireFox,Opera,Netscape手动输入事
跟踪input值改变的兼容处理
兼容处理input控件值改变事件
兼容处理 @ IE,FireFox,Opera,Netscape
手动输入事件捕获:手动输入内容时会触发
复制粘贴事件捕获:复制粘贴内容时会触发
程序设置事件捕获:javascript程序动态设置内容时会触发
拖入事件捕获:选定内容拖入时会触发
一些遗憾:
WEBKIT内核浏览器(Safari,Chrome等)尚未兼容第3点:程序设置事件捕获;
第4点,拖入事件捕获用的是onmousemove处理的,如果绑定函数中有alert,将会灰常杯具 - -!
欢迎讨论。
兼容代码:
- JScript code
var easychange = function(foochange){
if(!foochange||foochange.constructor!=Function){return;}
try{this.watch("value",function(id,oldval,newval){foochange(newval);return newval;});}catch(e){}
this.setAttribute('oninput','('+foochange.toString()+')(this.value)');
this.onpropertychange = function(){foochange(this.value);};
this.onmousemove = function(){foochange(this.value);};
this.onkeyup = function(){foochange(this.value);};
};
调用示例:
- JScript code
var dx = document.getElementById('x');easychange.call(dx,function(newvalue){document.title = newvalue;});[解决办法]
jf
[解决办法]
什么意思?
[解决办法]
UP
[解决办法]
支持
[解决办法]
呵呵 up
[解决办法]
jf
[解决办法]
楼主很有厉害,我以前有这想法,可没那勇气,嘿嘿!
[解决办法]
不会但支持一下啊!
[解决办法]
顶 支持
[解决办法]
支持
[解决办法]
up
[解决办法]
学习···
[解决办法]
我愣是没看明白,
try{this.watch("value",function(id,oldval,newval){foochange(newval);return newval;});}catch(e){}
这个this.watch是干嘛的
[解决办法]
UP,学习~~~~~~~~~~~
[解决办法]
学习···
[解决办法]
貌似这样调用很危险
- JScript code
var dx = document.getElementById('x');easychange.call(dx,(function(){return function(newvalue){dx.value="xxxx"+dx.value}})(dx));
[解决办法]
支持,谢谢~~
[解决办法]
或者
easychange.call(o,(function(){return function(newvalue){o.value="name:"+newvalue}})(o));
[解决办法]
接分
[解决办法]
不太懂
[解决办法]
mark
强力贴。
[解决办法]
挺实用
[解决办法]
很强大
[解决办法]
很好
[解决办法]
jf
[解决办法]
jf
[解决办法]
学习
[解决办法]
学习
[解决办法]
ding
[解决办法]
俺觉得这种一段代码可以兼容各种浏览器的方法很值得商榷!
因为如果增加了新的浏览器,那么势必要修改这段代码!
应该用更加优雅的方式来实现!
[解决办法]
up~
[解决办法]
接分
[解决办法]
想学习。
[解决办法]
[解决办法]
ding qi ding qi
[解决办法]
顶
[解决办法]
yidingzaiding。
[解决办法]
jf
[解决办法]
jf
[解决办法]
谢谢楼主
[解决办法]
NB
[解决办法]
路过...
[解决办法]
JScript?
[解决办法]
呵呵,,好啊
[解决办法]
huitie
[解决办法]
l;idrytposai
[解决办法]
好东西
[解决办法]
就js麻烦,哎
[解决办法]
路过·~收下
[解决办法]
不错不错 支持一个
[解决办法]
JS 很好很强大
[解决办法]
不懂,还是帮顶下吧
------解决方案--------------------
谁会制作电子商务网站
[解决办法]
lu guo
[解决办法]
顶一个!!!
[解决办法]
JF
[解决办法]
[解决办法]
JS起步中
[解决办法]
JF
[解决办法]
.
[解决办法]
JS起步中
[解决办法]
楼主辛苦了,学习了
[解决办法]
学习..
[解决办法]
学习,学习
[解决办法]
学习一下。。。。
[解决办法]
这个问题我也碰到过,记得也是Safari没有搞定。
- JScript code
this.textarea_editor.onpropertychange = function() { self.digitalCard.setDigital(self.maxLength - this.value.length); } if (typeof this.textarea_editor.addEventListener == "function") { this.textarea_editor.addEventListener("keypress", this.textarea_editor.onpropertychange, false); this.textarea_editor.addEventListener("keyup", this.textarea_editor.onpropertychange, false); this.textarea_editor.addEventListener("input", this.textarea_editor.onpropertychange, false); }
[解决办法]
不太建议监听onmousemove,这个触发会很频繁
[解决办法]
不太懂啊。。。
[解决办法]
不懂,还是帮顶下吧
[解决办法]
不错
[解决办法]
很好啊
[解决办法]
真的不错哦
[解决办法]
学习了啊
[解决办法]
学习 学习 不过有些看不懂
[解决办法]
顶
[解决办法]
~jF
[解决办法]
wrwe
[解决办法]
支持
[解决办法]
学习 学习
[解决办法]
学习 学习
[解决办法]
支持,谢谢~~~
[解决办法]
时有,我也来了 ,谢谢 ~~~~~
------解决方案--------------------
顶下
[解决办法]
看看学习了
[解决办法]
up
[解决办法]
学习~学习
[解决办法]
顶~~
[解决办法]
好东西啊。。。。
[解决办法]
强人啊,这样都行,哈哈!
[解决办法]
学习。学习。。。
[解决办法]
学习了 