0

如果您在下面的测试代码中按“上传您的文件”,按钮文本应更改为“上传...”,尽管在 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>

之前在SO上有类似的问题,但没有解决方案。

4

0 回答 0