1. 获取浏览器厂家
navigator.userAgent
2. 判断是否是数组
function isArray(val) {
if (!val){return false;}
return Object.prototype.toString.call(val) === '[object Array]';
}
3. 判断是否是函数
function isFunction(val) {
if (!val) {return false;}
return Object.prototype.toString.call(val) === '[object Function]';
}
4. 判断在数组中的位置
function inArray(val, arr) {
for (var key in arr) {
if (val === arr[key]) {return i;}
}
return -1;
}
5. 去空白字符
function trim(str) {
return str.replace(/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g, '');
}
6. 添加单位
function addUnit(val, unit) {
unit = unit || 'px';
return val && /^-?\d+(?:\.\d+)?$/.test(val) ? val + unit : val;
}
7. 去除单位
function removeUnit(val) {
var match;
return val && (match = /(\d+)/.exec(val)) ? parseInt(match[1], 10) : 0;
}
8. 转驼峰命名形式
function toCamel(str,splitFlag) {
var arr = str.split(splitFlag ? splitFlag :'-');
str = '';
_each(arr, function(key, val) {
str += (key > 0) ? val.charAt(0).toUpperCase() + val.substr(1) : val;
});
return str;
}
9. rgb颜色转十六进制
function toHex(val) {
function hex(d) {
var s = parseInt(d, 10).toString(16).toUpperCase();
return s.length > 1 ? s : '0' + s;
}
return val.replace(/rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/ig,
function($0, $1, $2, $3) {
return '#' + hex($1) + hex($2) + hex($3);
}
);
}
10. 转数组
function toArray(obj, offset) {
return Array.prototype.slice.call(obj, offset || 0);
}
11. 请求路径参数拼装
function addParam(url, param) {
return url.indexOf('?') >= 0 ? url + '&' + param : url + '?' + param;
}
12. execcommand
官方地址
13. 光标定位
13.1 保存光标位置,其他操作完成后还原
通过
document
的selection
对象来实现,在按钮的点击事件处理程序中,获取当前光标据文档开头的位置(即长度),然后保存,选择了子类型后,根据之前保存的位置还原光标,然后插入图片信息
//记录光标的位置,以备后续还原使用
var LastPos = 0;
//保存当前光标的位置
function SaveCusorPos() {
//获取编辑器焦点
var wobj = document.getElementById("myiframe").contentWindow;
wobj.focus();
if (document.selection) {
//ie,利用范围进行计算
var sText = wobj.document.selection.createRange();
//清除掉当前选中的内容
if (sText.htmlText != undefined && sText.htmlText != "") {
wobj.document.selection.clear();
}
//选择当前光标位置到文档开头之间的内容(以字符为单位)
sText.moveStart('character', -wobj.document.body.innerHTML.toString().length);
//计算选择内容的长度
LastPos = sText.text.length + FliterHtmlTag(sText.htmlText) + 1; //; //sText.htmlText.length; //
}
else if (wobj.selectionStart || wobj.selectionStart == "0") {
//firefox,直接读取编辑位置
LastPos = wobj.selectionStart;
}
}