window.onerror = function handleErr(msg, url, line, colno, error) { try { let data = ""; let title = ""; if (error.stack) { let text = "----------------------------------------------------------------------------\n"; text = text + error.stack + "\n"; text = text + "-----------------------------------------------------------------------------\n"; title = "onerror.stack__" + url; data = error.stack; console.error('error.stack', text); } else { let text = "----------------------------------------------------------------------------\n"; text = text + url + " (" + line + ":" + colno + ")\n"; text = text + "-----------------------------------------------------------------------------\n"; title = "onerro.nostack__" + url; data = line + ":" + colno; console.error('error.stackelse', text); } let senddata = { "level": "error", "game": "tower", "message": data, } const Http = new XMLHttpRequest(); Http.responseType = "text"; const send_url = 'https://elktest.duiweize.com/api/logs/record'; Http.open("POST", send_url); Http.setRequestHeader("Content-Type", 'application/json;charset=UTF-8'); let str = JSON.stringify(senddata); let options = { default_key_size: 2048, default_public_exponent: new Uint8Array([0x01, 0x00, 0x01]) } let jsb = new window['JSEncrypt'](options) //公钥 var publicString = '-----BEGIN PUBLIC KEY-----\n' + 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuwz5V8wt525dMS+A9wOd\n' + 'NAjvKgxdyoXYuZSlAJEXLhvJlaXwFCKEsUg/qBBeo4nrRnwaFAjG7ItqbCWR9Ozv\n' + '6oY5tMYQnFFK82XkMGbKm1gG0z9vYKhcNYgHZHi+QKAw4tLLWXWO/QBTGelEXptD\n' + 'azlNmdM+8wHOknTcMuIyjc9Yo5qCoNsCJpA465vnREiBezBbKB3rSw+LmrRcZcFk\n' + 's8hmGtjpabcQ8sCxco7mRzVh6/DomNWfNm7hUP6shrrJirwjQtaS51grlScj8KhN\n' + 'h+kBoiI4Ad0Xz0GHasK5hAMf3sXDsN61r0An8KTfa/nsYSJDwogPIKkeKAsmw9Df\n' + 'EQIDAQAB\n' + '-----END PUBLIC KEY-----' jsb.setPublicKey(publicString) // 加密内容 str = jsb.encrypt(str) Http.send(str); } catch (e) { } return false; };