使用这个小提琴:https://jsfiddle.net/mwsy5vhu/但想象一下我们看不到代码。(因为它不是我们的网站(。我们不知道使用地图的 var X 名称。
我们如何使用 javascript 隐藏控件?即:我们在控制台>打开浏览器检查器工具
在控制台中,我们可以执行什么来隐藏控件?
我试过:
map.setOptions({disableDefaultUI: true});
(出于某种原因,即使使用真正的 var 名称即 map,它也会给我一个错误,说地图没有定义(?
需要一种方法来隐藏地图控件而无需访问"源代码",例如只需注入动态 JavaScript 代码来定位现有地图。
也许这可能与 CSS 有关?
谢谢。
google.maps.Map
对象上有一个.setOptions
方法,它允许您动态设置MapOptions
:
var defaultUI = true;
google.maps.event.addDomListener(document.getElementById('disableUI'), "click", function() {
if (defaultUI) {
map.setOptions({disableDefaultUI: true});
} else {
map.setOptions({disableDefaultUI: false});
}
defaultUI = !defaultUI;
});
概念验证小提琴
代码片段:
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: {
lat: -33,
lng: 151
},
// disableDefaultUI: true
});
var defaultUI = true;
google.maps.event.addDomListener(document.getElementById('disableUI'), "click", function() {
if (defaultUI) {
map.setOptions({
disableDefaultUI: true
});
} else {
map.setOptions({
disableDefaultUI: false
});
}
defaultUI = !defaultUI;
});
}
/* Always set the map height explicitly to define the size of the div
* element that contains the map. */
#map {
height: 90%;
}
/* Optional: Makes the sample page fill the window. */
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
<input id="disableUI" value="disableUI" type="button" />
<div id="map"></div>
<!-- Replace the value of the key parameter with your own API key. -->
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&callback=initMap">
</script>