feat: 0.2.2

This commit is contained in:
tackchen 2022-01-06 00:14:45 +08:00
parent d85fc710db
commit 21d17b2d04
14 changed files with 41 additions and 59 deletions

View File

@ -36,6 +36,9 @@
// next();
// console.log(next);
},
ondevtoolclose: function(){
text.innerHTML = 'devtool closed!'
},
clearIntervalWhenDevOpenTrigger: false,
interval: 1000,
// tkName: 'ddtk',

9
helper/todo.md Normal file
View File

@ -0,0 +1,9 @@
<!--
* @Author: tackchen
* @Date: 2022-01-06 00:09:44
* @LastEditors: tackchen
* @LastEditTime: 2022-01-06 00:11:25
* @FilePath: /disable-devtool/helper/todo.md
* @Description: Coding something
-->
1. 问题ios真机chrome 浏览器 data-to-string 和 func-to-string两个detector与开发者工具表现一致

View File

@ -80,7 +80,7 @@
3. Refactor the code
4. Fix the problem caused by the method on the console cannot be cached by ie
## 0.2.1
## 0.2.1 - 0.2.2
1. Add ondevtoolclose configuration
2. Add isDevToolOpened api
3. Fix the accidental injury problem of ios mobile chrome

View File

@ -81,7 +81,7 @@
3. 重构代码
4. 修复ie不能缓存console上的方法导致的问题
## 0.2.1
## 0.2.1 - 0.2.2
1. 增加 ondevtoolclose 配置
2. 增加 isDevToolOpened api
3. 修复 ios mobile chrome 的误伤问题

View File

@ -183,7 +183,7 @@ declare type DETECTOR_TYPE = -1 | 0 | 1 | 2 | 3 | 4 | 5;</code></p>
<script
disable-devtool-auto
md5='1aabac6d068eef6a7bad3fdf50a05cc8'
src='https://cdn.jsdelivr.net/npm/disable-devtool@0.2.1/disable-devtool.min.js#use'
src='https://cdn.jsdelivr.net/npm/disable-devtool@0.2.2/disable-devtool.min.js#use'
></script>
<!-- <script disable-devtool-auto md5='1aabac6d068eef6a7bad3fdf50a05cc8' src='./npm/disable-devtool.min.js'></script> -->
<script>

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
{
"name": "disable-devtool",
"version": "0.2.1",
"version": "0.2.2",
"description": "Disable web developer tools from the f12 button, right-click and browser ",
"main": "disable-devtool.min.js",
"unpkg": "disable-devtool.min.js",

View File

@ -1,6 +1,6 @@
{
"name": "disable-devtool",
"version": "0.2.1",
"version": "0.2.2",
"description": "Disable web developer tools from the f12 button, right-click and browser ",
"main": "disable-devtool.min.js",
"unpkg": "disable-devtool.min.js",

View File

@ -2,7 +2,7 @@
* @Author: tackchen
* @Date: 2021-11-15 22:26:57
* @LastEditors: tackchen
* @LastEditTime: 2022-01-05 22:40:41
* @LastEditTime: 2022-01-06 00:08:02
* @FilePath: /disable-devtool/src/detector/date-to-string.js
* @Description: Coding something
*/
@ -11,8 +11,8 @@ import {registInterval} from '../utils/interval';
import {DETECTOR_TYPE, triggerOnDevOpen} from './detector';
import {clearLog, log} from '../utils/log';
export default function detector (isTrueIOSChrome) {
if (isTrueIOSChrome) return;
export default function detector (isIOSChrome) {
if (isIOSChrome) return;
const type = DETECTOR_TYPE.DATE_TO_STRING;
let count = 0;
const date = new Date();

View File

@ -2,7 +2,7 @@
* @Author: tackchen
* @Date: 2021-11-15 22:26:57
* @LastEditors: tackchen
* @LastEditTime: 2022-01-05 22:38:55
* @LastEditTime: 2022-01-06 00:08:11
* @FilePath: /disable-devtool/src/detector/debugger.js
* @Description: Coding something
*/
@ -10,8 +10,8 @@
import {registInterval} from '../utils/interval';
import {DETECTOR_TYPE, triggerOnDevOpen} from './detector';
export default function detector (isTrueIOSChrome) {
if (isTrueIOSChrome) {
export default function detector (isIOSChrome) {
if (isIOSChrome) {
const type = DETECTOR_TYPE.DEBUGGER;
// 仅在 ios chrome 下生效
registInterval(type, () => {

View File

@ -2,7 +2,7 @@
* @Author: theajack
* @Date: 2021-07-24 23:16:34
* @LastEditor: theajack
* @LastEditTime: 2022-01-05 23:39:06
* @LastEditTime: 2022-01-06 00:09:02
* @Description: Coding something
*/
@ -16,7 +16,7 @@ import DebuggerDetector from './debugger';
// import LogTimeDetector from './log-time'; // 不准确 容易误伤 故弃用
import {clearDDInterval, clearDDTimeout} from '../utils/interval';
import {closeWindow} from '../utils/close-window';
import {isIOSChrome, isLogRegExpCount3} from '../utils/util';
import {isIOSChrome} from '../utils/util';
import {isDevToolOpened, isLastStateOpened, markDevToolOpenState} from '../utils/open-state';
export const DETECTOR_TYPE = {
@ -41,31 +41,19 @@ const Detectors = {
};
export function initDetectors () {
// ! 判断是否是 ios chrome 真机, true时 禁用 date 和 func detector因为会误伤。启用debugger detector兜底
// 不使用 async/await 是为了减少打包体积
// ! 判断是否是 ios chrome true时 禁用 date 和 func detector因为会误伤。启用debugger detector兜底
const typeArray = config.detectors === 'all' ?
Object.keys(Detectors) : config.detectors;
const initFunc = (isTrueIOSChrome) => {
const typeArray = config.detectors === 'all' ?
Object.keys(Detectors) : config.detectors;
if (isTrueIOSChrome) {
typeArray.push(DETECTOR_TYPE.DEBUGGER); // 会debuger显示devtool, 仅在ios chrome 真机生效
}
typeArray.forEach(type => {
if (Detectors[type]) {
Detectors[type](isTrueIOSChrome);
}
});
};
if (!isIOSChrome) {
initFunc(false);
} else {
isLogRegExpCount3().then(bool => {
initFunc(bool);
});
if (isIOSChrome) {
typeArray.push(DETECTOR_TYPE.DEBUGGER); // 会debuger显示devtool, 仅在ios chrome 真机生效
}
typeArray.forEach(type => {
if (Detectors[type]) {
Detectors[type](isIOSChrome);
}
});
}
export function triggerOnDevOpen (type = DETECTOR_TYPE.UNKONW) {

View File

@ -2,7 +2,7 @@
* @Author: tackchen
* @Date: 2021-11-15 22:26:57
* @LastEditors: tackchen
* @LastEditTime: 2022-01-05 22:39:48
* @LastEditTime: 2022-01-06 00:07:54
* @FilePath: /disable-devtool/src/detector/func-to-string.js
* @Description: Coding something
*/
@ -13,8 +13,8 @@ import {registInterval} from '../utils/interval';
import {DETECTOR_TYPE, triggerOnDevOpen} from './detector';
import {log, clearLog} from '../utils/log';
export default function detector (isTrueIOSChrome) {
if (isTrueIOSChrome) return;
export default function detector (isIOSChrome) {
if (isIOSChrome) return;
const type = DETECTOR_TYPE.FUNC_TO_STRING;
let count = 0;
const func = () => {};

View File

@ -1,5 +1,3 @@
import {log} from './log';
export function isPC () {
return !/(iphone|ipad|ipod|ios|android)/i.test(navigator.userAgent.toLowerCase());
}
@ -114,19 +112,3 @@ export const isOldEdge = hasUaName('edge') && !hasUaName('chrome');
export const isIE = isOldEdge || hasUaName('trident') || hasUaName('msie');
export const isIOSChrome = hasUaName('crios');
// ios chrome log regExp count=3 以此区别真机和开发者工具模拟的
export function isLogRegExpCount3 () {
return new Promise((resolve) => {
let count = 0;
const target = new RegExp();
target.toString = () => {
count ++;
return '';
};
log(target);
setTimeout(() => {
resolve(count === 3);
}, 100);
});
}

View File

@ -1 +1 @@
export default '0.2.1';
export default '0.2.2';