javascript中的模块和名字空间是不可区分的内容。
这样可以防止同名函数和变量发生冲突, 也可以更方便地管理代码, 就像 .NET 的命名空间 (namespace) 和 Java 的包 (package) 一样.
在工作中难免要对textarea动态插入一些内容,插入完成后又想让光标定位于textarea的最后,各浏览器对这个的解释有些差异,下面整理了一个兼容浏览器的方法 toTextEnd ,此方法接受一个参数,该参数为要定位光标的目标元素【可编辑表单元素】。
其实理论很简单,在IE中采用createTextRange方法,非IE中采用setSelectionRange方法进行光标定位。
代码中的cn.ie是进行IE检测,使用代码的朋友可以换成自己的方法才会起作用,否则会报错。
看代码:
function toTextEnd(elem){// 将光标置于某表单元素的最后
if(cn.ie){
var range = elem.createTextRange();
range.moveStart("character", elem.value.length);
range.collapse(true);
range.select();
}else{// 非IE情况下将光标置于文本框最后
elem.setSelectionRange(elem.value.length, elem.value.length);
elem.focus();
}
};
RT
第一个为textarea或其他text表单的ID;
第二个为显示输入内容的ID,可留空;
第三个为最多输入的字符,一个汉字为2个字符。
“\v” != “v” 这个曾是最简短的判断是否为IE的方法,但是现在在IE9中失效了,请喜好这个的同学慎用。
“\v” != “v” 这个返回true,曾代表不是IE浏览器,但是现在IE9也返回true