嗨,我遇到了javascripts特别是谷歌地图API的问题。
我有一个页面,例如包含库:
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places,visualization"></script>
//some page contents
$this->widget('MyWidgetThatIncludesGoogleAPI',array(
..
));
当我调用包含谷歌地图api的小部件时,即使我最初没有在此页面中包含地图api,也会出现问题。两次调用小部件也是一样的。
我收到错误消息称Google Maps API已多次加载,是否有一种编程方式来处理重复包含的js?
答案 0 :(得分:1)
您可以使用全局变量来跟踪它是否已被包含。然后,您可以创建一个函数来包含脚本(如果尚未包含该脚本)。
$includedGoogleMaps = false;
function includeGoogleMaps() {
global $includedGoogleMaps;
if (!includedGoogleMaps) {
echo '<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places,visualization"></script>';
$includeGoogleMaps = true;
}
}
这个功能并不是必需的,但它可以让一切变得更加清洁。