我正在使用地理定位API,我正在尝试设置一个onclick事件,只要单击一个按钮,就会显示用户位置的经度。但是我的onclick函数不起作用,因为即使我没有调用它,我的函数似乎也在加载。
<!DOCTYPE html>
<html lang="en">
<head>
<link href="style.css">
<title>
</title>
<!--<script src="modernizr.custom.64298.js"></script>-->
</head>
<body>
<button onclick="showLocation()">Click</button>
<p id="info"></p>
<script src="script.js"></script>
</body>
</html>
JavaScript代码:
navigator.geolocation.getCurrentPosition(showLocation);
function showLocation(position) {
var currPosLat = position.coords.latitude;
document.getElementById("info").innerHTML = "latitude: " + currPosLat;
}
我只是不确定我做错了什么。我的自由度只是被加载到我的innerHTML中,甚至没有点击。如果我使用点击按钮,则表示坐标为undefined
。
答案 0 :(得分:0)
您的代码以namespace Foo\Bar\Test;
use PhpUnit\Framework;
use Psr\Log;
final class LoggerAwareTest extends Framework\TestCase
{
public function testImplementsLoggerAwareInterface()
{
$loggerAware = new Asset\LoggerAware();
$this->assertInstanceOf(Log\LoggerAwareInterface::class, $loggerAware);
}
}
加载.js后立即调用showLocation函数,这就是它立即运行的原因。
您需要做的就是将此行移至您的onclick,它将起作用:
所以你的按钮变成了:
navigator.geolocation.getCurrentPosition(showLocation);
并且您的脚本只是showLocation函数
<button onclick="navigator.geolocation.getCurrentPosition(showLocation)">Click</button>