1// Don't add any requirements for jQuery or the likes, keep it simple! 2(function() { 3 var prevOnError = window.onerror; 4 var CORS_GET = function(url, data) { 5 if (url.indexOf('?') === -1) { 6 url = url+'?'; 7 } else { 8 url = url+'&'; 9 } 10 for (var key in data) { 11 url = url + encodeURIComponent(key) + '=' + encodeURIComponent(data[key]) + '&'; 12 } 13 14 var getScript = document.createElement('script'); 15 getScript.setAttribute('src', url); 16 getScript.setAttribute('async', 'async'); 17 document.getElementsByTagName('head')[0].appendChild(getScript); 18 }; 19 20 window.onerror = function (errorMsg, url, lineNumber, columnNumber, error) { 21 CORS_GET(window.JHOUSTON_DESTINATION || 'https://jhouston.ytec.nl/jhouston/simple/', { 22 message: errorMsg, 23 line_number: lineNumber, 24 column_number: (columnNumber != null ? columnNumber : ''), 25 url: url, 26 document_url: document.URL, 27 stacktrace: (error != null ? error.stack : ''), 28 project_name: 'Victron Energy WWW', 29 }); 30 31 if (prevOnError) { 32 return prevOnError(errorMsg, url, lineNumber, columnNumber, error); 33 } 34 35 return false; // don't stop the error handler 36 }; 37})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.