var first = document.querySelector('#number1'); var second = document.querySelector('#number2'); var sfirst = document.querySelector('#snumber1'); var ssecond = document.querySelector('#snumber2'); var result = document.querySelector('.result'); if (window.Worker) { // Check if Browser supports the Worker api. // Requires script name as input var myWorker = new Worker("worker.js"); // onkeyup could be used instead of onchange if you wanted to update the answer every time // an entered value is changed, and you don't want to have to unfocus the field to update its .value first.onchange = function() { var aa='', bb=''; if (ssecond.value == '-') { aa = '('; bb = ')'; } myWorker.postMessage([first.value,ssecond.value + aa + second.value + bb, document.URL.split('#')[0].split('?')[0]]); // Sending message as an array to the worker console.log('Message posted to worker ... ' + document.URL.split('#')[0].split('?')[0]); }; second.onchange = function() { var aa='', bb=''; if (ssecond.value == '-') { aa = '('; bb = ')'; } myWorker.postMessage([first.value,ssecond.value + aa + second.value + bb, document.URL.split('#')[0].split('?')[0]]); console.log('Message posted to worker ... ' + document.URL.split('#')[0].split('?')[0]); }; myWorker.onmessage = function(e) { result.textContent = e.data; console.log('Message received from worker'); }; }