function type(target) {
var template = {
"[object Array]": "array",
"[object Object]": "object",
"[object Number]": "number - object",
"[object Boolean]": "boolean - object",
"[object String]": "string - object"
}
if (target === null) {
return "null";
} else if (typeof (target) == 'object') {
var str = Object.prototype.toString.call(target);
return template[str];
} else {
return typeof (target);
}
}
Array.prototype.unique = function () {
var obj = {},
arr = [],
len = this.length;
for (var i = 0; i < len; i++) {
if (!obj[this[i]]) {
obj[this[i]] = "a";
arr.push(this[i]);
}
}
return arr;
}
String.prototype.uniqueStr = function () {
var Str = '',
obj = {};
for (var prop in this) {
if (this.hasOwnProperty(prop)) {
if (!obj[this[prop]]) {
obj[this[prop]] = "a";
Str += this[prop];
}
}
}
return Str;
}
String.prototype.theFirstWord = function () {
var obj = {};
for (var prop in this) {
if (this.hasOwnProperty(prop)) {
(!obj[this[prop]]) ? obj[this[prop]] = 1 : obj[this[prop]] += 1;
}
}
for (var prop in obj) {
if (obj[prop] == 1) {
return prop;
}
}
}
var inhert = (function () {
var F = {};
return function (target, origin) {
F.prototype = origin.prototype;
target.prototype = new F();
target.prototype.constructor = target;
target.prototype.uber = origin.prototype
}
}())
function deepClone(origin, target) {
var target = target || {},
toStr = Object.prototype.toString,
arrStr = '[object Array]';
for (prop in origin) {
if (origin.hasOwnProperty(prop)) {
if (typeof (origin[prop]) == 'object') {
if (toStr.call(origin[prop]) == arrStr) {
target[prop] = [];
} else {
target[prop] = {};
}
deepClone(origin[prop], target[prop]);
} else {
target[prop] = origin[prop];
}
}
}
}
function retParent(elem, n) {
while (elem && n) {
elem = elem.parentElement;
n--;
}
return elem;
}
Element.prototype.myChildren = function () {
var child = this.childNodes;
var len = child.length;
var arr = [];
for (var i = 0; i < len; i++) {
if (child[i].nodeType == 1) {
arr.push(child[i]);
}
}
return arr;
}
Element.prototype.myHasChildren = function () {
var child = this.childNodes;
var len = child.length;
for (var i = 0; i < len; i++) {
if (child[i].nodeType == 1) {
return true;
}
}
return false;
}
function retSibling(e, n) {
while (e && n) {
if (n > 0) {
e = e.nextElementSibling;
n--;
} else {
e = e.previousElementSibling;
n++;
}
}
return e;
}
function retSibling(e, n) {
while (e && n) {
if (n > 0) {
if (e.nextElementSibling) {
e = e.nextElementSibling;
} else {
for (e = e.nextSibling; e && e.noteType != 1; e = e.nextSibling);
}
n--;
} else {
if (e.nextElementSibling) {
e = e.nextElementSibling;
} else {
for (e = e.previousSibling; e && e.noteType != 1; e = e.previousSibling);
}
n++;
}
}
return e;
}
Element.prototype.myChild1 = function (obj) {
var Obj = obj || {};
var child = this.childNodes;
var len = child.length;
for (var i = 0; i < len; i++) {
var myNodeName = child[i].nodeName.toString();
if (child[i].nodeType == 1 && child[i].childNodes.length <= 1) {
Obj[i + "." + myNodeName] = child[i].nodeName;
} else if (child[i].nodeType == 1 && child[i].childNodes.length > 1) {
Obj[i + "." + myNodeName] = {};
child[i].myChild1(Obj[i + "." + myNodeName]);
}
}
return Obj;
}
Element.prototype.inserAfter = function (targetNode, afterNode) {
var beforNode = afterNode.nextElementSibling;
if (beforNode == null) {
this.appendChild(targetNode);
} else {
this.insertBefore(targetNode, beforNode);
}
}
function getScrollOffset() {
if (window.pageXOffset) {
return {
x: window.pageXOffset,
y: window.pageYOffset
}
} else {
return {
x: document.body.scrollLeft + document.documentElement.scrollLeft,
y: document.body.scrollTop + document.documentElement.scrollTop
}
}
}
function getViewportOffset() {
if (window.innerWidth) {
return {
w: window.innerWidth,
h: window.innerHeight
}
} else {
if (document.compatMode === "BackCompat") {
return {
w: document.body.clientWidth,
h: document.body.clientHeight
}
} else {
return {
w: document.documentElement.clientWidth,
h: document.documentElement.clientHeight
}
}
}
}
function getStyle(elem, prop) {
if (window.getComputedStyle) {
return window.getComputedStyle(elem, null)[prop];
} else {
return elem.currentStyle[prop];
}
}
function addEvent(elem, type, handle) {
if (elem.addEventListener) {
elem.addEventListener(type, handle, false);
} else if (elem.attachEvent) {
elem.attachEvent('on' + type, function () {
handle.call(elem);
})
} else {
elem['on' + type] = handle;
}
}
function stopBobble(event) {
if (event.stopPropagation) {
event.stopPropagation;
} else {
event.cancelBubble = true;
}
}
function cancelHandler(event) {
if (event.preventDefault) {
event.preventDefault;
} else {
event.returnValue = false;
}
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-6092.html