Javascript google maps api长加载时,jQuery mobile对话框消失
当GoogleMapsAPI加载时间过长时,我在jQueryMobile中使用的伪启动页面(这是一个加载时以编程方式打开的对话框)遇到了问题 实际上,当Google Maps需要一段时间来完成加载时,jQuery Mobile对话框窗口消失,url仍然显示#&ui state=dialog,就好像它仍然打开一样,所以它没有关闭它,只是让它消失 我尝试过很多方法,但我不知道如何解决或预防它Javascript google maps api长加载时,jQuery mobile对话框消失,javascript,jquery,google-maps,jquery-mobile,Javascript,Jquery,Google Maps,Jquery Mobile,当GoogleMapsAPI加载时间过长时,我在jQueryMobile中使用的伪启动页面(这是一个加载时以编程方式打开的对话框)遇到了问题 实际上,当Google Maps需要一段时间来完成加载时,jQuery Mobile对话框窗口消失,url仍然显示#&ui state=dialog,就好像它仍然打开一样,所以它没有关闭它,只是让它消失 我尝试过很多方法,但我不知道如何解决或预防它 $("#map_canvas").ready(function() { var myOptions
$("#map_canvas").ready(function() {
var myOptions = {
zoom: 13,
center:latLngVar,
mapTypeId:google.maps.MapTypeId.ROADMAP,
disableDefaultUI:true,
zoomControlOptions:{ position:google.maps.ControlPosition.LEFT_TOP }
};
if(firstShow){
var winHeight = $(window).height();
var winWidth = $(window).width();
var oMod = winHeight/winWidth;
if ( oMod <= 1 ){
renderLandscape(winHeight,winWidth);
}else if( oMod > 1 ){
renderPortrait(winHeight,winWidth);
}
drawMap(myOptions);
}
showHomeScreen();
splashListener = google.maps.event.addListener(map, "idle", function(){
setTimeout(function(){$("#dlgSplash").click()}, 500);
google.maps.event.removeListener(splashListener);
})
firstShow = false;
});
$(“#映射_画布”).ready(函数(){
变量myOptions={
缩放:13,
中心:latLngVar,
mapTypeId:google.maps.mapTypeId.ROADMAP,
disableDefaultUI:true,
ZoomControl选项:{position:google.maps.ControlPosition.LEFT_TOP}
};
如果(第一场){
var winHeight=$(window.height();
var winWidth=$(window.width();
var oMod=winHeight/winWidth;
如果(oMod 1){
renderPortrait(winHeight,winWidth);
}
绘图(myOptions);
}
showHomeScreen();
splashListener=google.maps.event.addListener(映射,“空闲”,函数(){
setTimeout(函数(){$(“#dlgSplash”)。单击()},500);
google.maps.event.RemovelListener(splashListener);
})
firstShow=false;
});
html中有一个锚定标记,如下所示
<a href="splash.php" data-prefetch data-rel="dialog" id="dlgSplash" style="display: none;"></a>
您是否能够发布用于显示jQuery Mobile对话框并将其关闭的代码?以下几点可以帮助您实现目标:
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
<script type='text/javascript'>
$(function() {
$("#dialog").popup("open");
});
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 8
});
$("#dialog").popup("close");
}
</script>
$(函数(){
$(“#对话框”)。弹出(“打开”);
});
函数initMap(){
map=new google.maps.map(document.getElementById('map'){
中心:{纬度:-34.397,液化天然气:150.644},
缩放:8
});
$(“#对话框”)。弹出(“关闭”);
}
请提供一个演示此问题的示例。抱歉,已添加代码。这似乎允许我以编程方式关闭对话框,但我正试图阻止它,因为它似乎在我不希望它消失时消失了。