1(function () { 2 const submitBtnSelector = "button[type='submit'], input[type='submit']"; 3 window.addEventListener('load', (event) => { 4 document.querySelectorAll(submitBtnSelector).forEach(i => { 5 i.addEventListener("click", (event) => { 6 event.preventDefault(); 7 const btn = event.target; 8 if (btn.getAttribute('disabled') === 'disabled') 9 return; 10 btn.setAttribute('disabled', 'disabled'); 11 setAntiforgeryTokens().then(() => { 12 const form = btn.closest('form'); 13 form.requestSubmit(btn); 14 btn.removeAttribute('disabled'); 15 }, err => { 16 console.log('Antiforgery token retrieval failed: ' + err); 17 btn.removeAttribute('disabled'); 18 }); 19 }, false); 20 }); 21 }); 22 23 function setAntiforgeryTokens() { 24 return new Promise((resolve, reject) => { 25 const service = document.querySelector("input[name='antiCsrfService'").value; 26 const headerName = document.querySelector("input[name='antiCsrfCustomHeaderName'").value; 27 let xhr = new XMLHttpRequest(); 28 xhr.open('GET', service); 29 xhr.setRequestHeader(headerName, 'true') 30 xhr.responseType = 'json'; 31 xhr.onload = function () { 32 const response = xhr.response; 33 if (response != null) { 34 const token = response.Value; 35 document.querySelectorAll("input[name='sf_antiforgery']").forEach(i => i.value = token); 36 resolve(); 37 } 38 else { 39 reject(); 40 } 41 }; 42 xhr.onerror = function () { reject(); }; 43 xhr.send(); 44 }); 45 } 46})();
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.