@buession/prototype
Version:
A native object extension framework for Javascript.
93 lines • 3.26 kB
JavaScript
/**
* Window 对象扩展
*/
Object.defineProperty(window, "browser", {
value: {
userAgent: navigator.userAgent,
name: navigator.appName,
version: navigator.appVersion,
isMobile: ["Android", "iPhone", "iPod", "Windows Phone", "Mobile", "Coolpad", "mmp", "SmartPhone", "midp", "wap", "xoom", "Symbian", "J2ME", "Blackberry", "Wince"].some(function (value) { return navigator.userAgent.exists(value); }),
isChrome: /\(KHTML, like Gecko\) Chrome\//.test(navigator.userAgent),
isFirefox: navigator.userAgent.exists("Firefox"),
isMozilla: navigator.userAgent.exists("Mozilla"),
isEdge: navigator.userAgent.exists("Edge"),
isMSIE: navigator.userAgent.exists("MSIE") && navigator.userAgent.exists("compatible"),
isOpera: navigator.userAgent.exists("Opera"),
isSafari: navigator.userAgent.exists("Safari"),
isNetscape: /Netscape([\d]*)\/([^\s]+)/i.test(navigator.userAgent)
},
configurable: true,
writable: false
});
/**
* 将字符串复制到剪贴板
*
* @param str 字符串
*/
Window.prototype.copy = function (str) {
try {
if (Object.isObject(this.clipboardData)) {
this.clipboardData.setData("text", str);
}
else {
var fakeElement = document.createElement("textarea");
fakeElement.style.border = "none";
fakeElement.style.margin = "0";
fakeElement.style.padding = "0";
fakeElement.style.position = "absolute";
fakeElement.style.top = "-9999px";
fakeElement.style.left = "-9999px";
fakeElement.value = str;
fakeElement.setAttribute("readonly", "");
document.body.appendChild(fakeElement);
fakeElement.setSelectionRange(0, str.length);
fakeElement.select();
document.execCommand("copy");
fakeElement.remove();
}
}
catch (e) {
console.error(e);
}
};
/**
* 获取所有的请求参数及值
*
* @return 所有的请求参数及值
*/
Location.prototype.getParameters = function () {
var queryString = this.search;
var parameters = {};
if (queryString.indexOf("?") != -1) {
queryString = queryString.substring(1);
var parts = queryString.split("&");
for (var i = 0; i < parts.length; i++) {
var temp = parts[i].split("=");
var val = temp.length == 2 ? encodeURIComponent(temp[1]) : "";
if (Object.isUndefined(parameters[temp[0]])) {
parameters[temp[0]] = val;
}
else {
if (Object.isArray(parameters[temp[0]]) == false) {
var oldVal = parameters[temp[0]];
delete parameters[temp[0]];
parameters[temp[0]] = [oldVal];
}
parameters[temp[0]].push(val);
}
}
}
return parameters;
};
/**
* 获取指定请求参数的值
*
* @param name 参数名
* @return 指定请求参数的值
*/
Location.prototype.getParameter = function (name) {
var parameters = this.getParameters();
return parameters[name];
};
//# sourceMappingURL=window.js.map
;