• 补环境专题一(常用参数)


    开发参考文档 

    dHTML(超文本标记语言) | MDN

    看报错 

     global

    这是浏览器没有的东西,如过出现的了。就把这个删除改掉或者直接改为 window

     window

    node里是不会有window的直接缺了就直接定义一个

    window = this;

    referrer

     这个一般是 document里的东西后面跟上网站本身/zh-CN/docs/Web/API/Document/referrer

    1. document = {
    2. referrer:"https://www.toutiao.com"
    3. }

    href

    一般是Location: href   下面的东西 也是填自己这个网页

    1. location ={
    2. href:"https://www.toutiao.com"
    3. }

     length

    这是长度的,太多对象都会用到所用VM2模块去处理vm2 - npm         npm install vm2

    VM2​​​​​​

    1. //为了在node里面运行V8的环境
    2. var fs =require('fs'); //引入操作文件的模块
    3. const {VM} = require('vm2'); //生成一个纯净的v8引擎的环境
    4. const vm = new VM();
    5. //引入需要操作的js代码
    6. var data = fs.readFileSync('../babel1_测试/babel测试.js','utf-8')
    7. debugger
    8. vm.run(data); //运行js代码
    9. debugger
    10. //调试版
    11. var fs =require('fs'); //引入操作文件的模块
    12. const {VM,VMScript} =require('vm2');
    13. const file=`${__dirname}/code.js`; //要调试的js
    14. const windowfile=`${__dirname}/window.js`; //补的环境
    15. const script =new VMScript(fs.readFileSync(windowfile)+fs.readFileSync(file),'vm2');
    16. debugger
    17. VM.run(script);
    18. debugger

    protocol

    浏览器的下面的协议在不一定在那个下面

    1. location ={
    2. protocol:"https:";
    3. }

    userAgent

    浏览器信息       这个简单

    1. navigator = {
    2. userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36';
    3. }

    process

    检查是不是node环境下运行的用vm2可以过   V8下是没有的

    plugins

    检查浏览器插件在Navigator 下面 /zh-CN/docs/Web/API/Navigator

    1. navigator={
    2. plugins =[];
    3. }

    webdriver

    浏览器驱动 不是在V8引擎下的

    getOwnPropertyNames

    属性名获取是在Object下的一个方法,从原型链上去取的,V8自带的

    platform

    处理器架构

    1. navigator ={
    2. platform: 'Win32';
    3. }

    cookie 

    1. document = {
    2. cookie = '';
    3. }
    4. //或者这样
    5. window.document.cookie = '值 '

    createEvent 

    监听事件

    1. document={
    2. createEvent:function(eventname){
    3. //先找到创建了什么事件
    4. console.log(eventname);
    5. return {
    6. //看看有没有调用初始化事件
    7. initEvent:function(x,x1,x2){
    8. console.log('initEvent',x);
    9. },
    10. //监听事件
    11. addEventListener:function(x,x1){
    12. console.log('addEventListener',x,x1)
    13. }
    14. }
    15. }
    16. }

    canvas指纹

     生成方法

    1. var ccc = document.createElement('canvas');
    2. ccc.toDataURL()

    补的方法

    1. document ={
    2. createElement : function(tagName){
    3. var tag=(tagName + '').toLowerCase();
    4. //假如传入的参数是这个就把正常浏览器返回的那个答案给出去
    5. if(tag=='canvas'){
    6. return {
    7. toDataURL:function(){ return 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAACWCAYAAABkW7XSAAAAAXNSR0IArs4c6QAABGJJREFUeF7t1AEJAAAMAsHZv/RyPNwSyDncOQIECEQEFskpJgECBM5geQICBDICBitTlaAECBgsP0CAQEbAYGWqEpQAAYPlBwgQyAgYrExVghIgYLD8AAECGQGDlalKUAIEDJYfIEAgI2CwMlUJSoCAwfIDBAhkBAxWpipBCRAwWH6AAIGMgMHKVCUoAQIGyw8QIJARMFiZqgQlQMBg+QECBDICBitTlaAECBgsP0CAQEbAYGWqEpQAAYPlBwgQyAgYrExVghIgYLD8AAECGQGDlalKUAIEDJYfIEAgI2CwMlUJSoCAwfIDBAhkBAxWpipBCRAwWH6AAIGMgMHKVCUoAQIGyw8QIJARMFiZqgQlQMBg+QECBDICBitTlaAECBgsP0CAQEbAYGWqEpQAAYPlBwgQyAgYrExVghIgYLD8AAECGQGDlalKUAIEDJYfIEAgI2CwMlUJSoCAwfIDBAhkBAxWpipBCRAwWH6AAIGMgMHKVCUoAQIGyw8QIJARMFiZqgQlQMBg+QECBDICBitTlaAECBgsP0CAQEbAYGWqEpQAAYPlBwgQyAgYrExVghIgYLD8AAECGQGDlalKUAIEDJYfIEAgI2CwMlUJSoCAwfIDBAhkBAxWpipBCRAwWH6AAIGMgMHKVCUoAQIGyw8QIJARMFiZqgQlQMBg+QECBDICBitTlaAECBgsP0CAQEbAYGWqEpQAAYPlBwgQyAgYrExVghIgYLD8AAECGQGDlalKUAIEDJYfIEAgI2CwMlUJSoCAwfIDBAhkBAxWpipBCRAwWH6AAIGMgMHKVCUoAQIGyw8QIJARMFiZqgQlQMBg+QECBDICBitTlaAECBgsP0CAQEbAYGWqEpQAAYPlBwgQyAgYrExVghIgYLD8AAECGQGDlalKUAIEDJYfIEAgI2CwMlUJSoCAwfIDBAhkBAxWpipBCRAwWH6AAIGMgMHKVCUoAQIGyw8QIJARMFiZqgQlQMBg+QECBDICBitTlaAECBgsP0CAQEbAYGWqEpQAAYPlBwgQyAgYrExVghIgYLD8AAECGQGDlalKUAIEDJYfIEAgI2CwMlUJSoCAwfIDBAhkBAxWpipBCRAwWH6AAIGMgMHKVCUoAQIGyw8QIJARMFiZqgQlQMBg+QECBDICBitTlaAECBgsP0CAQEbAYGWqEpQAAYPlBwgQyAgYrExVghIgYLD8AAECGQGDlalKUAIEDJYfIEAgI2CwMlUJSoCAwfIDBAhkBAxWpipBCRAwWH6AAIGMgMHKVCUoAQIGyw8QIJARMFiZqgQlQMBg+QECBDICBitTlaAECBgsP0CAQEbAYGWqEpQAAYPlBwgQyAgYrExVghIgYLD8AAECGQGDlalKUAIEDJYfIEAgI2CwMlUJSoCAwfIDBAhkBAxWpipBCRAwWH6AAIGMgMHKVCUoAQIGyw8QIJARMFiZqgQlQMBg+QECBDICBitTlaAECBgsP0CAQEbAYGWqEpQAgQdWMQCX4yW9owAAAABJRU5ErkJggg=='}
    8. }
    9. }
    10. return {}
    11. }
    12. }

  • 相关阅读:
    Win10系统下安装Ubuntu系统(双系统)
    NFC简析与应用
    【Nginx27】Nginx学习:代理模块(一)基本配置与概念
    【python基础】模块和包
    shiro
    软件测试实战项目【电商、银行、商城、金融、医药、电商】
    Python内置数据类型
    2022年12月英语六级预测范文—预测范文:人生哲理、人生
    Keepalived 高可用详解
    住宅代理IP在网络攻击中的作用
  • 原文地址:https://blog.csdn.net/Python9724/article/details/133149338