思路是在window.onload中当检测到加载Roboto字体时,skip掉就可以了。
如下:
var head = document.getElementsByTagName('head')[0];
// Save the original method
var insertBefore = head.insertBefore;
// Replace it!
head.insertBefore = function (newElement, referenceElement) {
if (newElement.href && newElement.href.indexOf('fonts.googleapis.com/css?family=Roboto') > 0) {
console.info('Prevented Roboto from loading!');
return;
}
insertBefore.call(head, newElement, referenceElement);
};
完整代码如下:
<script type="text/javascript">
var map, geocoder, bounds;//, marker, infowindow;
window.onload = function() {
var head = document.getElementsByTagName('head')[0];
// Save the original method
var insertBefore = head.insertBefore;
// Replace it!
head.insertBefore = function (newElement, referenceElement) {
if (newElement.href && newElement.href.indexOf('fonts.googleapis.com/css?family=Roboto') > 0) {
console.info('Prevented Roboto from loading!');
return;
}
insertBefore.call(head, newElement, referenceElement);
};
// Creating a new map
var options = {
zoom: 10,
center: new google.maps.LatLng(27.9679125,120.7272096),
mapTypeId: google.maps.MapTypeId.ROADMAP,
panControl: true,
streetViewControl: false,
scaleControl: true
};
map = new google.maps.Map(document.getElementById('map_canvas'), options);
// Making the Geocoder call
getCoordinates("Parallelweg 2, Groenlo, Netherlands", "PR50S");
return true;
}
// Create a function the will return the coordinates for the address
function getCoordinates(address, name) {
// Check to see if we already have a geocoded object. If not we create one
if (!geocoder) {
geocoder = new google.maps.Geocoder();
}
if (!bounds) {
bounds = new google.maps.LatLngBounds();
}
// Creating a GeocoderRequest object
var geocoderRequest = {
address: address
}
// Making the Geocode request
geocoder.geocode(geocoderRequest, function(results, status) {
// Check if status is OK before proceeding
if (status == google.maps.GeocoderStatus.OK) {
// Center the map on the returned location
//map.setCenter(results[0].geometry.location);
// Creating a new marker and adding it to the map
// at the position of the marker to the returned location
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
if (name) {
// Creating a new InfoWindow
var infoWindow = new google.maps.InfoWindow();
// Creating the content of the InfoWindow to the address and the returned position
var content = '<strong>' + name + '</strong><br />';
content += '<strong>' + address + '</strong><br />';
// Adding the content to the InfoWindow
infoWindow.setContent(content);
// Opening the InfoWindow
//infoWindow.open(map, marker);
google.maps.event.addListener(marker, 'click', function() {
infoWindow.open(map, marker);
});
}
// Extend bounds to contain new marker
bounds.extend(marker.getPosition());
//bounds.extend(infoWindow.getPosition());
map.fitBounds(bounds);
}
// Zoom out a little more to see some surroundings
map.setZoom(map.getZoom() - 5);
});
}
</script>