Google会在地图容器中添加覆盖我的样式的样式。 我知道该如何解决。但是API(v3.8 / 9 / exp)也会加载我实际上不需要/想要的webfont“ Roboto”。
是否有任何设置/选项/方法? 我可以阻止API添加额外的CSS吗?
这是google-maps-API添加到<head>我页面的代码:
<head>
<style type="text/css"> .gm-style .gm-style-cc span, .gm-style .gm-style-cc a, .gm-style .gm-style-mtc div { font-size:10px } </style> <link type="text/css" rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700"> <style type="text/css"> @media print { .gm-style .gmnoprint, .gmnoprint { display:none } } @media screen { .gm-style .gmnoscreen, .gmnoscreen { display:none } } </style> <style type="text/css"> .gm-style { font-family: Roboto,Arial,sans-serif; font-size: 11px; font-weight: 400; text-decoration: none } </style>
您可以在Google脚本调用它之前替换insertBefore方法:
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') > -1) { console.info('Prevented Roboto from loading!'); return; } insertBefore.call(head, newElement, referenceElement); }; // Check it! new google.maps.Map(document.getElementById('map'), { center : new google.maps.LatLng(51.508742,-0.120850), zoom : 16, mapTypeId : google.maps.MapTypeId.ROADMAP, streetViewControl: false, zoomControl : false, panControl : false, mapTypeControl : false });