<script type="text/javascript"> function init(){ var a=document.getElementById("test"); a.onkeyup=count; a.onmouseover=count; a.onmouseout=count; } function count(){ var a=document.getElementById("test").value.length; document.getElementById("div").innerHTML=a; } window.onload=init; </script> </head><body> <textarea id="test"></textarea> <div id="div"></div> </body>这样试试
onchange onpaste 然后加上健盘事件
onpaste onpaste byteLength = function(b) { if (typeof b == "undefined") { return 0 } var a = b.match(/[^\x00-\x80]/g); return (b.length + (!a ? 0 : a.length)) }; return function(q, g) { g = g || {}; g.max = g.max || 140; g.min = g.min || 41; g.surl = g.surl || 20; var p = trim(q).length; if (p > 0) { var j = g.min, s = g.max, b = g.surl, n = q; var r = q.match(/(http|https):\/\/[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+([-A-Z0-9a-z\$\.\+\!\_\*\(\)\/\,\:;@&=\?~#%]*)*/gi) || []; var h = 0; for (var m = 0, p = r.length; m < p; m++) { var o = byteLength(r[m]); if (/^(http:\/\/t.cn)/.test(r[m])) { continue } else { if (/^(http:\/\/)+(weibo.com|weibo.cn)/.test(r[m])) { h += o <= j ? o: (o <= s ? b: (o - s + b)) } else { h += o <= s ? b: (o - s + b) } } n = n.replace(r[m], "") } return Math.ceil((h + byteLength(n)) / 2)byteLength = function(b) { if (typeof b == "undefined") { return 0 } var a = b.match(/[^\x00-\x80]/g); return (b.length + (!a ? 0 : a.length)) }; return function(q, g) { g = g || {}; g.max = g.max || 140; g.min = g.min || 41; g.surl = g.surl || 20; var p = trim(q).length; if (p > 0) { var j = g.min, s = g.max, b = g.surl, n = q; var r = q.match(/(http|https):\/\/[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+([-A-Z0-9a-z\$\.\+\!\_\*\(\)\/\,\:;@&=\?~#%]*)*/gi) || []; var h = 0; for (var m = 0, p = r.length; m < p; m++) { var o = byteLength(r[m]); if (/^(http:\/\/t.cn)/.test(r[m])) { continue } else { if (/^(http:\/\/)+(weibo.com|weibo.cn)/.test(r[m])) { h += o <= j ? o: (o <= s ? b: (o - s + b)) } else { h += o <= s ? b: (o - s + b) } } n = n.replace(r[m], "") } return Math.ceil((h + byteLength(n)) / 2) } else { return 0 byteLength = function(b) { if (typeof b == "undefined") { return 0 } var a = b.match(/[^\x00-\x80]/g); return (b.length + (!a ? 0 : a.length)) }; return function(q, g) { g = g || {}; g.max = g.max || 140; g.min = g.min || 41; g.surl = g.surl || 20; var p = trim(q).length; if (p > 0) { var j = g.min, s = g.max, b = g.surl, n = q; var r = q.match(/(http|https):\/\/[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+([-A-Z0-9a-z\$\.\+\!\_\*\(\)\/\,\:;@&=\?~#%]*)*/gi) || []; var h = 0; for (var m = 0, p = r.length; m < p; m++) { var o = byteLength(r[m]); if (/^(http:\/\/t.cn)/.test(r[m])) { continue } else { if (/^(http:\/\/)+(weibo.com|weibo.cn)/.test(r[m])) { h += o <= j ? o: (o <= s ? b: (o - s + b)) } else { h += o <= s ? b: (o - s + b) } } n = n.replace(r[m], "") } return Math.ceil((h + byteLength(n)) / 2) } else { return 0 } byteLength = function(b) { if (typeof b == "undefined") { return 0 } var a = b.match(/[^\x00-\x80]/g); return (b.length + (!a ? 0 : a.length)) }; return function(q, g) { g = g || {}; g.max = g.max || 140; g.min = g.min || 41; g.surl = g.surl || 20; var p = trim(q).length; if (p > 0) { var j = g.min, s = g.max, b = g.surl, n = q; var r = q.match(/(http|https):\/\/[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+([-A-Z0-9a-z\$\.\+\!\_\*\(\)\/\,\:;@&=\?~#%]*)*/gi) || []; var h = 0; for (var m = 0, p = r.length; m < p; m++) { var o = byteLength(r[m]); if (/^(http:\/\/t.cn)/.test(r[m])) { continue } else { if (/^(http:\/\/)+(weibo.com|weibo.cn)/.test(r[m])) { h += o <= j ? o: (o <= s ? b: (o - s + b)) } else { h += o <= s ? b: (o - s + b) } } n = n.replace(r[m], "") } return Math.ceil((h + byteLength(n)) / 2) } else { return 0 } byteLength = function(b) { if (typeof b == "undefined") { return 0 } var a = b.match(/[^\x00-\x80]/g); return (b.length + (!a ? 0 : a.length)) }; return function(q, g) { g = g || {}; g.max = g.max || 140; g.min = g.min || 41; g.surl = g.surl || 20; var p = trim(q).length; if (p > 0) { var j = g.min, s = g.max, b = g.surl, n = q; var r = q.match(/(http|https):\/\/[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+([-A-Z0-9a-z\$\.\+\!\_\*\(\)\/\,\:;@&=\?~#%]*)*/gi) || []; var h = 0; for (var m = 0, p = r.length; m < p; m++) { var o = byteLength(r[m]); if (/^(http:\/\/t.cn)/.test(r[m])) { continue } else { if (/^(http:\/\/)+(weibo.com|weibo.cn)/.test(r[m])) { h += o <= j ? o: (o <= s ? b: (o - s + b)) } else { h += o <= s ? b: (o - s + b) } } n = n.replace(r[m], "") } return Math.ceil((h + byteLength(n)) / 2) } else { return 0 } } })(); 详细出处参考:http://www.jb51.net/article/28130.htm } })(); 详细出处参考:http://www.jb51.net/article/28130.htm } })(); 详细出处参考:http://www.jb51.net/article/28130.htm } } })(); 详细出处参考:http://www.jb51.net/article/28130.htm } else { return 0 } } })(); 详细出处参考:http://www.jb51.net/article/28130.htm
IE9绑定 keydown, cut, input 事件。(propertychange,input事件在IE9下有BUG)
其他浏览器绑定 input 事件。
例如你实现了兼容浏览器的事件绑定方法 addEvent ,那么针对IE外的浏览器这样绑定事件:
addEvent(node, 'input', function(evt){
//do somthing
});由于事件的激发非常频繁,你还要设计一个事件缓存机制延迟并定时计算字数。
function init(){
var a=document.getElementById("test");
a.onkeyup=count;
a.onmouseover=count;
a.onmouseout=count;
}
function count(){
var a=document.getElementById("test").value.length;
document.getElementById("div").innerHTML=a;
}
window.onload=init;
</script>
</head><body>
<textarea id="test"></textarea>
<div id="div"></div>
</body>这样试试
if (typeof b == "undefined") {
return 0
}
var a = b.match(/[^\x00-\x80]/g);
return (b.length + (!a ? 0 : a.length))
}; return function(q, g) {
g = g || {};
g.max = g.max || 140;
g.min = g.min || 41;
g.surl = g.surl || 20;
var p = trim(q).length;
if (p > 0) {
var j = g.min,
s = g.max,
b = g.surl,
n = q;
var r = q.match(/(http|https):\/\/[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+([-A-Z0-9a-z\$\.\+\!\_\*\(\)\/\,\:;@&=\?~#%]*)*/gi) || [];
var h = 0;
for (var m = 0,
p = r.length; m < p; m++) {
var o = byteLength(r[m]);
if (/^(http:\/\/t.cn)/.test(r[m])) {
continue
} else {
if (/^(http:\/\/)+(weibo.com|weibo.cn)/.test(r[m])) {
h += o <= j ? o: (o <= s ? b: (o - s + b))
} else {
h += o <= s ? b: (o - s + b)
}
}
n = n.replace(r[m], "")
}
return Math.ceil((h + byteLength(n)) / 2)byteLength = function(b) {
if (typeof b == "undefined") {
return 0
}
var a = b.match(/[^\x00-\x80]/g);
return (b.length + (!a ? 0 : a.length))
}; return function(q, g) {
g = g || {};
g.max = g.max || 140;
g.min = g.min || 41;
g.surl = g.surl || 20;
var p = trim(q).length;
if (p > 0) {
var j = g.min,
s = g.max,
b = g.surl,
n = q;
var r = q.match(/(http|https):\/\/[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+([-A-Z0-9a-z\$\.\+\!\_\*\(\)\/\,\:;@&=\?~#%]*)*/gi) || [];
var h = 0;
for (var m = 0,
p = r.length; m < p; m++) {
var o = byteLength(r[m]);
if (/^(http:\/\/t.cn)/.test(r[m])) {
continue
} else {
if (/^(http:\/\/)+(weibo.com|weibo.cn)/.test(r[m])) {
h += o <= j ? o: (o <= s ? b: (o - s + b))
} else {
h += o <= s ? b: (o - s + b)
}
}
n = n.replace(r[m], "")
}
return Math.ceil((h + byteLength(n)) / 2)
} else {
return 0 byteLength = function(b) {
if (typeof b == "undefined") {
return 0
}
var a = b.match(/[^\x00-\x80]/g);
return (b.length + (!a ? 0 : a.length))
}; return function(q, g) {
g = g || {};
g.max = g.max || 140;
g.min = g.min || 41;
g.surl = g.surl || 20;
var p = trim(q).length;
if (p > 0) {
var j = g.min,
s = g.max,
b = g.surl,
n = q;
var r = q.match(/(http|https):\/\/[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+([-A-Z0-9a-z\$\.\+\!\_\*\(\)\/\,\:;@&=\?~#%]*)*/gi) || [];
var h = 0;
for (var m = 0,
p = r.length; m < p; m++) {
var o = byteLength(r[m]);
if (/^(http:\/\/t.cn)/.test(r[m])) {
continue
} else {
if (/^(http:\/\/)+(weibo.com|weibo.cn)/.test(r[m])) {
h += o <= j ? o: (o <= s ? b: (o - s + b))
} else {
h += o <= s ? b: (o - s + b)
}
}
n = n.replace(r[m], "")
}
return Math.ceil((h + byteLength(n)) / 2)
} else {
return 0
} byteLength = function(b) {
if (typeof b == "undefined") {
return 0
}
var a = b.match(/[^\x00-\x80]/g);
return (b.length + (!a ? 0 : a.length))
}; return function(q, g) {
g = g || {};
g.max = g.max || 140;
g.min = g.min || 41;
g.surl = g.surl || 20;
var p = trim(q).length;
if (p > 0) {
var j = g.min,
s = g.max,
b = g.surl,
n = q;
var r = q.match(/(http|https):\/\/[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+([-A-Z0-9a-z\$\.\+\!\_\*\(\)\/\,\:;@&=\?~#%]*)*/gi) || [];
var h = 0;
for (var m = 0,
p = r.length; m < p; m++) {
var o = byteLength(r[m]);
if (/^(http:\/\/t.cn)/.test(r[m])) {
continue
} else {
if (/^(http:\/\/)+(weibo.com|weibo.cn)/.test(r[m])) {
h += o <= j ? o: (o <= s ? b: (o - s + b))
} else {
h += o <= s ? b: (o - s + b)
}
}
n = n.replace(r[m], "")
}
return Math.ceil((h + byteLength(n)) / 2)
} else {
return 0
} byteLength = function(b) {
if (typeof b == "undefined") {
return 0
}
var a = b.match(/[^\x00-\x80]/g);
return (b.length + (!a ? 0 : a.length))
}; return function(q, g) {
g = g || {};
g.max = g.max || 140;
g.min = g.min || 41;
g.surl = g.surl || 20;
var p = trim(q).length;
if (p > 0) {
var j = g.min,
s = g.max,
b = g.surl,
n = q;
var r = q.match(/(http|https):\/\/[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+([-A-Z0-9a-z\$\.\+\!\_\*\(\)\/\,\:;@&=\?~#%]*)*/gi) || [];
var h = 0;
for (var m = 0,
p = r.length; m < p; m++) {
var o = byteLength(r[m]);
if (/^(http:\/\/t.cn)/.test(r[m])) {
continue
} else {
if (/^(http:\/\/)+(weibo.com|weibo.cn)/.test(r[m])) {
h += o <= j ? o: (o <= s ? b: (o - s + b))
} else {
h += o <= s ? b: (o - s + b)
}
}
n = n.replace(r[m], "")
}
return Math.ceil((h + byteLength(n)) / 2)
} else {
return 0
}
}
})(); 详细出处参考:http://www.jb51.net/article/28130.htm
}
})(); 详细出处参考:http://www.jb51.net/article/28130.htm
}
})(); 详细出处参考:http://www.jb51.net/article/28130.htm
}
}
})(); 详细出处参考:http://www.jb51.net/article/28130.htm
} else {
return 0
}
}
})(); 详细出处参考:http://www.jb51.net/article/28130.htm