javascript - 如何在 html 页面中添加脚本的结果?

标签 javascript html

大家好,感谢您的宝贵时间!我有一个简单的问题.. 我有一个 javascript 文件,我想将其嵌入到 html 页面中。往下,你会看到这个javascript文件。最后,我有这一行:

console.log("percentage:",(counter/(data.length/4))*100)

这个百分比我想出现在 html 文件中。我怎样才能使它成为一个脚本,然后从/在 html 文件中调用它/出现它?提前非常感谢!我的 javascript 文件:

var t0= performance.now();
if (navigator.geolocation) {
var location_timeout = setTimeout("geolocFail()", 10000);

navigator.geolocation.getCurrentPosition(function(position) {
    clearTimeout(location_timeout);

    var lat = position.coords.latitude;
    var lng = position.coords.longitude;

    geocodeLatLng(lat, lng);
}, function(error) {
    clearTimeout(location_timeout);
    geolocFail();
   });
   } else {
   // Fallback for no geolocation
   geolocFail();
   }

   getBase64FromImageUrl("https://maps.googleapis.com/maps/api/streetview?
   location=lng,lat&size=300x300&pitch=90")

   function getBase64FromImageUrl(url) {
   var img = new Image();
   var range = 60;
   img.setAttribute('crossOrigin', 'anonymous');

   img.onload = function () {
   var canvas = document.createElement("canvas");
   canvas.width =this.width;
   canvas.height =this.height;

   var ctx = canvas.getContext("2d");
   ctx.drawImage(this, 0, 0);
   var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);

   //console.log("imageData",imageData);
   //var dataURL = canvas.toDataURL("image/png");
   var index = (150*imageData.width + 150) * 4;
   var red = imageData.data[index];
   var green = imageData.data[index + 1];
   var blue = imageData.data[index + 2];
   var alpha = imageData.data[index + 3];
   console.log(red)
   console.log(green)
   console.log(blue)
   var rangedRB = red -range;
   var rangedGB = green -range;
   var rangedBB = blue -range;

    var rangedRT = red +range;
    var rangedGT = green +range;
    var rangedBT = blue +range;

    var data = imageData.data;
    var counter = 0;
    for(var i=0; i<data.length; i+=4) {
    var red = data[i];
    var green = data[i+1];
    var blue = data[i+2];
    if ((red<rangedRT && red>rangedRB) && (green<rangedGT && green>rangedGB) 
    && (blue<rangedBT && blue>rangedBB)){
    counter = counter +1;
    console.log("counter",counter)
     }
     }
     console.log("counterFinal",counter)
     console.log("data.length",data.length/4)
     console.log("percentage:",(counter/(data.length/4))*100)

     //console.log(dataURL.replace(/^data:image\/(png|jpg);base64,/, ""));
     // alert(dataURL.replace(/^data:image\/(png|jpg);base64,/, ""));
     var t1 = performance.now();
     console.log("The estimated time is:",t1-t0,"milliseconds")
      };

      img.src = url;
      }

最佳答案

首先,更新您的脚本,将其封装为一个函数。从风格上讲,您可以选择将其进一步拆分,但至少,一个函数比拥有一个在全局空间中运行的脚本要好。

function getGeolocationResult() {
  // script code goes here.

  return (counter / (data.length/4)*100); 
}

然后将其嵌入到 HTML 页面中:,最简单的解决方案是使用 Javascript、appendChildcreateElement

//caveat, not tested!
<html>
 <body>
  <div id='mydiv'></div>

   <script src='yourscript.js'></script>
   <script type='javascript'>
     function showPercentage() {
       var result = getGeolocationResult();
       var elm = document.getElementById('mydiv');
       var d = document.createElement('div');
       d.innerText = result;
       elm.appendChild(d);
     }

     // since you don't need to wait for the entire page to load 
     // (i.e. css and/or image tags, DOMContentLoaded should suffice. 
     // If you need to wait, use window.addEventListent('load',...) instead.
     document.addEventListener("DOMContentLoaded", showPercentage);
   </script>
  </body>
</html>

https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement

关于javascript - 如何在 html 页面中添加脚本的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49073162/

相关文章:

python - 使用 Flask 检索数据并填充网页?

Html 链接改变颜色?没有解释

javascript - JSON 中的 HTML

javascript - Rails 模态表单 - 在表单提交失败后使用 html.erb 文件中的内容更新弹出窗口

javascript - 解析 HTML 表的 JSON 对象

PHP HTML Word Doc 不显示通过 URL 生成的图像

php - 如何使用 Javascript 对输入字段值求和并将其显示到 html 表中?

javascript - 添加数据时如何自动滚动到div的末尾?

javascript - JQuery 两个自动完成文本字段

javascript - 缩放不同长度的文本以适合容器宽度