Displaying Javascript function variable to HTML using a button -


i'm trying create button that, when clicked, calls javascript function calculate wifi speed , return value in text box below. i've been following example code:

  current location: <br>   <button onclick="getlocation()">locate</button>   <p id="demo">       latitude: <input type="text" id="lat">       longitude: <input type="text" id="lon">   </p>  <script>       function getlocation() {           if (navigator.geolocation) {               navigator.geolocation.getcurrentposition(showposition);           } else {                x.innerhtml = "geolocation not supported browser.";           }   }        function showposition(position) {           document.getelementbyid("lat").value = position.coords.latitude;           document.getelementbyid("lon").value = position.coords.longitude;    }   </script> 

and created code wifi speed collection:

current wifi speed: <br>   <button onclick="calculatewifispeed()">calculate</button>   <p id="demo">       wifi speed: <input type="text" id="wifispeed">   </p> <script> calculatewifispeed(){  var imageaddr = "http://www.kenrockwell.com/contax/images/g2/examples/31120037-5mb.jpg";      var downloadsize = 4995374; //bytes      window.onload = function() {         var oprogress = document.getelementbyid("progress");         oprogress.innerhtml = "loading image, please wait...";         window.settimeout(measureconnectionspeed, 1);     };      function measureconnectionspeed() {         var oprogress = document.getelementbyid("progress");         var starttime, endtime;         var download = new image();         download.onload = function () {             endtime = (new date()).gettime();             showresults();         }          download.onerror = function (err, msg) {             oprogress.innerhtml = "invalid image, or error downloading";         }          starttime = (new date()).gettime();         var cachebuster = "?nnn=" + starttime;         download.src = imageaddr + cachebuster;          function showresults() {             var duration = (endtime - starttime) / 1000;             var bitsloaded = downloadsize * 8;             var speedmbps = (speedkbps / 1024).tofixed(2);             document.getelementbyid("wifispeed").value = speedmbps;             oprogress.innerhtml = "your connection speed is: <br />" + speedmbps + " mbps<br />";         }     }  } 

however, button doesn't work , doesn't return anything.

i went , fixed issues stopping running, haven't double checked logic though - i'll let solve rest!

<p id="progress"></p>  current wifi speed: <br> <button onclick="calculatewifispeed()">calculate</button> <p id="demo">   wifi speed: <input type="text" id="wifispeed"> </p>  <script>  var pageready = false;   window.onload = function() {     pageready = true;  };  function calculatewifispeed() {     var imageaddr = "http://www.kenrockwell.com/contax/images/g2/examples/31120037-5mb.jpg";     var downloadsize = 4995374; //bytes      function waitforpageload() {      if(pageready) {         settimeout(measureconnectionspeed, 1);      }else{         settimeout(waitforpageload, 500);      }     }      function measureconnectionspeed() {          var oprogress = document.getelementbyid("progress");          oprogress.innerhtml = "loading image, please wait...";          var starttime, endtime;         var download = new image();         download.onload = function () {             endtime = (new date()).gettime();             showresults();         }          download.onerror = function (err, msg) {             oprogress.innerhtml = "invalid image, or error downloading";         }          starttime = (new date()).gettime();         var cachebuster = "?nnn=" + starttime;         download.src = imageaddr + cachebuster;          function showresults() {             var duration = (endtime - starttime) / 1000;             var bitsloaded = downloadsize * 8;             var speedkbps = (1 / duration) * bitsloaded;             var speedmbps = (speedkbps / 1024).tofixed(2);             document.getelementbyid("wifispeed").value = speedmbps;             oprogress.innerhtml = "your connection speed is: <br />" + speedmbps + " mbps<br />";         }     }      settimeout(waitforpageload, 500);  }  </script>