我是编程的新手,所以不要判断我。尝试编写代码以测量经度和纬度的长度。显示此错误:
length.html:27 未捕获的ReferenceError:未定义区域 在HTMLInputElement.onclick(length.html:27)
<html>
<head></head>
<body>
<script type="module">
import LatLon from 'https://cdn.jsdelivr.net/npm/geodesy@2.2.0/latlon-spherical.min.js';
function area()
{
var la1 = document.getElementById(lat1).value;
var la2 = document.getElementById(lat2).value;
var lo1 = document.getElementById(lon1).value;
var lo2 = document.getElementById(lon2).value;
const p1 = new LatLon(la1, lo1);
const p2 = new LatLon(la2, la2);
const d = p1.distanceTo(p2);
document.write('<br>Length is : ' + d);
}
</script>
<form>
First point<br>
Latitude:
<input type="text" name="lat1" id="lat1"><br>
Longitude:
<input type="text" name="lon1" id="lon1"><br>
Second point<br>
Latitude<input type="text" name="lat2" id="lat2"><br>
Longitude<input type="text" name="lon2" id="lon2"><br>
<input type="button" value="submit" onclick="area()">
</form>
</body>
</html>
答案 0 :(得分:0)
使用<script type="module">
时,将创建一个单独的作用域以防止名称冲突。有关更多详细信息,请参见JavaScript modules。
您可以通过将函数添加到window
命名空间中来使函数成为全局函数,如下所示:
window.area = area;
或者您可以在JavaScript中简单地使用addEventListener
:
document.querySelector('[type=submit]').addEventListener('click', area);