132 lines
3.4 KiB
JavaScript
132 lines
3.4 KiB
JavaScript
import {config} from './config';
|
|
import {clearDDInterval} from './interval';
|
|
|
|
export function isPC () {
|
|
return !/(iphone|ipad|ipod|ios|android)/i.test(navigator.userAgent.toLowerCase());
|
|
}
|
|
|
|
export function closeWindow () {
|
|
clearDDInterval();
|
|
if (config.url) {
|
|
window.location.href = config.url;
|
|
} else {
|
|
try {
|
|
window.opener = null;
|
|
window.open('', '_self');
|
|
// 需要是由js跳转到这个页面才可以关闭这个页面
|
|
window.close();
|
|
window.history.back();
|
|
} catch (e) {
|
|
console.log(e);
|
|
}
|
|
setTimeout(() => {
|
|
// 否则执行跳转到 url
|
|
window.location.href = `https://tackchen.gitee.io/404.html?h=${encodeURIComponent(location.host)}`;
|
|
}, 500);
|
|
}
|
|
}
|
|
|
|
export function getNowTime () {
|
|
return new Date().getTime();
|
|
}
|
|
|
|
export function getUrlParam (name) {
|
|
const search = window.location.search;
|
|
if (search !== '') {
|
|
const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
|
|
const r = search.substr(1).match(reg);
|
|
if (r != null) {
|
|
return unescape(r[2]);
|
|
}
|
|
}
|
|
return '';
|
|
}
|
|
|
|
export function formatName (name) {
|
|
if (name.indexOf('-') === -1) {
|
|
return name;
|
|
}
|
|
let flag = false;
|
|
return name.split('').map(c => {
|
|
if (c === '-') {
|
|
flag = true;
|
|
return '';
|
|
}
|
|
if (flag) {
|
|
flag = false;
|
|
return c.toUpperCase();
|
|
}
|
|
return c;
|
|
}).join('');
|
|
}
|
|
|
|
|
|
export function onPageShowHide (onshow, onhide) {
|
|
let hidden, state, visibilityChange;
|
|
if (typeof document.hidden !== 'undefined') {
|
|
hidden = 'hidden';
|
|
visibilityChange = 'visibilitychange';
|
|
state = 'visibilityState';
|
|
} else if (typeof document.mozHidden !== 'undefined') {
|
|
hidden = 'mozHidden';
|
|
visibilityChange = 'mozvisibilitychange';
|
|
state = 'mozVisibilityState';
|
|
} else if (typeof document.msHidden !== 'undefined') {
|
|
hidden = 'msHidden';
|
|
visibilityChange = 'msvisibilitychange';
|
|
state = 'msVisibilityState';
|
|
} else if (typeof document.webkitHidden !== 'undefined') {
|
|
hidden = 'webkitHidden';
|
|
visibilityChange = 'webkitvisibilitychange';
|
|
state = 'webkitVisibilityState';
|
|
}
|
|
const cb = function () {
|
|
if (document[state] === hidden) {
|
|
onhide();
|
|
} else {
|
|
onshow();
|
|
}
|
|
};
|
|
document.removeEventListener(visibilityChange, cb, false);
|
|
document.addEventListener(visibilityChange, cb, false);
|
|
}
|
|
|
|
export function hackAlert (before, after) {
|
|
const _alert = window.alert;
|
|
const _confirm = window.confirm;
|
|
const _prompt = window.prompt;
|
|
const mod = (fn) => {
|
|
return (...args) => {
|
|
if (before) {before();}
|
|
fn(...args);
|
|
if (after) {after();}
|
|
};
|
|
};
|
|
window.alert = mod(_alert);
|
|
window.confirm = mod(_confirm);
|
|
window.prompt = mod(_prompt);
|
|
}
|
|
|
|
export function isQQBrowser () {
|
|
return hasUaName('qqbrowser');
|
|
}
|
|
|
|
export function isFirefox () {
|
|
return hasUaName('firefox');
|
|
}
|
|
|
|
export function isMacOs () {
|
|
return hasUaName('macintosh');
|
|
}
|
|
|
|
function hasUaName (name) {
|
|
return navigator.userAgent.toLocaleLowerCase().indexOf(name) !== -1;
|
|
}
|
|
|
|
export function isInIframe () {
|
|
try {
|
|
return window.self !== window.top;
|
|
} catch (e) {
|
|
return true;
|
|
}
|
|
} |