如果您在下面的测试代码中按“上传您的文件”,按钮文本应更改为“正在上传...”,尽管在Safari中它不会。选择一个足够大的文件应该给你时间观察按钮。注释掉地图div,一切正常。
这是孤立的测试代码,花了半天才发现地图可能是原因,但我需要深入挖掘。有趣的是,当将相同的代码复制到JSfiddle时,它不会重现该错误,因此您需要创建自己的html文件。
<!DOCTYPE html>
<html>
<head>
<title>Google Map interfering with button event in Safari</title>
<meta charset="utf-8">
<script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script>
var map;
function init() {
var options = {
zoom: 8,
center: new google.maps.LatLng(0, 0),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map'), options);
}
google.maps.event.addDomListener(window, 'load', init);
</script>
</head>
<body>
<form action="http://localhost" method="POST" enctype="multipart/form-data">
<!--comment map to see correct button behaviour in Safari-->
<div id="map" style="width:300px;height:300px"></div>
<p><small>Very large file please:</small> <input type="file" name="big"></p>
<button onclick="this.innerHTML='Uploading...'">Upload your file</button>
</form>
</body>
</html>
之前有类似的问题,但没有解决方案。