disable-devtool

Disable web developer tools from the f12 button, right-click and browser menu

MIT License

Downloads
29.6K
Stars
1.8K
Committers
5

English | | | Gitee | QQ: 720626970



0.

1.

1.1 npm

npm i disable-devtool
import DisableDevtool from 'disable-devtool';

DisableDevtool();

1.2 script

<script disable-devtool-auto src='https://cdn.jsdelivr.net/npm/disable-devtool'></script>

:

<!---->
<script disable-devtool-auto src='https://cdn.jsdelivr.net/npm/[email protected]'></script>
<!---->
<script disable-devtool-auto src='https://cdn.jsdelivr.net/npm/disable-devtool@latest'></script>

1.3


issuesbug

1.3.1

DisableDevtool({
    ondevtoolopen: (type) => {
        const info = 'devtool opened!; type =' + type;
        alert(info);
        //   console.warn(info); 
    },
})
<script src='https://cdn.jsdelivr.net/npm/disable-devtool'></script>
<script>
    DisableDevtool({
        ondevtoolopen: (type) => {
            const info = 'devtool opened!; type =' + type;
            alert(info); //   console.warn(info); 
        },
    })
</script>

1.3.2

devtool

console.log(DisableDevtool.isRunning);

true

issue


2.

disable-devtool

:

  1. f12 ctrl+shift+i
  2. (urltkmd5)
  3. IE,360,qq,FireFox,Chrome,Edge...
  4. npmscript()
  5. eruda vconsole
  6. ignore
  7. iframe

3.

3.1 npm

script

disable-devtool

npm i disable-devtool
import DisableDevtool from 'disable-devtool';

DisableDevtool(options);

3.1.1

DisableDevtool

interface IDDResult {
    success: boolean; // 
    reason: string; // 
}

3.1.2

options

interface IConfig {
    md5?: string; // md53.2
    url?: string; // localhost
    tkName?: string; // url ddtk
    ondevtoolopen?(type: DetectorType, next: Function): void; // urltype 3.5 next
    ondevtoolclose?(): void; // 
    interval?: number; //  200ms
    disableMenu?: boolean; //  true
    stopIntervalTime?: number; // 
    clearIntervalWhenDevOpenTrigger?: boolean; //  false ondevtoolclose
    detectors?: Array<DetectorType>; //   3.5 
    clearLog?: boolean; // log
    disableSelect?: boolean; //  false
    disableCopy?: boolean; //  false
    disableCut?: boolean; //  false
    disablePaste: boolean; //  false
    ignore?: (string|RegExp)[] | null | (()=>boolean); // 
    disableIframeParents?: boolean; // iframe
    timeOutUrl?: string; // url;
    rewriteHTML: string; // 
}

enum DetectorType {
  Unknown = -1,
  RegToString = 0, // 
  DefineId, // dom id
  Size, // 
  DateToString, // Date.toString 
  FuncToString, // Function.toString 
  Debugger, // ios chrome 
  Performance, // log
  DebugLib, //  eruda  vconsole   
};

3.2 md5 tk

key md5

key a md5 bb md5 url url ddtk=a

disableDevtool md5

DisableDevtool.md5('xxx');

3.3 script

<script 
    disable-devtool-auto
    src='https://cdn.jsdelivr.net/npm/disable-devtool'
    md5='xxx'
    url='xxx'
    tk-name='xxx'
    interval='xxx'
    disable-menu='xxx'
    detectors='xxx'
    clear-log='true'
    disable-select='true'
    disable-copy='true'
    disable-cut='true'
    disable-paste='true'
></script>
  1. disable-devtool-auto
  2. 3.1
  3. scriptbody
  4. detectors detectors='1 2 3'

3.4 script

<script src='https://cdn.jsdelivr.net/npm/disable-devtool'></script>
<script>
    DisableDevtool({
        // 3.1
    })
</script>

3.5

Disable-Devtool , DisableDevtool.DetectorType

enum DetectorType {
  Unknown = -1,
  RegToString = 0, // 
  DefineId, // dom id
  Size, //  // 0.3.5
  DateToString, // Date.toString 
  FuncToString, // Function.toString 
  Debugger, // ios chrome 
  Performance, // log
  DebugLib, // 
};

ondevtoolopen

ondevtoolopen

DisableDevtool({
    ondevtoolopen(type, next){
        alert('Devtool opened with type:' + type);
        next();
    }
});

3.6 API

3.6.1 isRunning

DisableDevtool ()

DisableDevtool.isRunning;

3.6.2 isSuspend

DisableDevtool ()

DisableDevtool.isSuspend = true;
DisableDevtool.isSuspend = false;

3.6.3 config.ignore

ignore

DisableDevtool({
    ignore: [
        '/user/login', // 
        /\/user\/[0-9]{6}/, // 
    ]
});

bool

DisableDevtool({
    ignore: () => {
        return userType === 'admin'; // 
    }
});

3.6.4 version

DisableDevtool

DisableDevtool.version;