Javascript Jquery移动对话框不显示页面
我从GoogleMapsJavaScriptAPIv3站点获取了基本地图演示,并将其放在一个名为“testnav.htm”的页面中。我试图使用JQM以对话框的形式打开此页面,但该对话框无法正确显示。我得到的只是对话框标题。 我的testnav.htm如下所示:Javascript Jquery移动对话框不显示页面,javascript,jquery-mobile,google-maps-api-3,Javascript,Jquery Mobile,Google Maps Api 3,我从GoogleMapsJavaScriptAPIv3站点获取了基本地图演示,并将其放在一个名为“testnav.htm”的页面中。我试图使用JQM以对话框的形式打开此页面,但该对话框无法正确显示。我得到的只是对话框标题。 我的testnav.htm如下所示: <!DOCTYPE html> <html> <head> <title>Simple Map</title> <meta name="viewport
<!DOCTYPE html>
<html>
<head>
<title>Simple Map</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<style>
html, body, #map-canvas {
margin: 0;
padding: 0;
height: 200px;
width: 400px;
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
var map;
function initialize() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
}
console.log('here');
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div data-role="dialog">
<div data-role="header" data-theme="d">
<h1>Map</h1>
</div>
<div data-role="content" data-theme="c">
<div id="map-canvas"></div>
</div>
</div>
</body>
</html>
<a href="testnav.htm" data-rel="dialog">View On Map</a>
简单地图
html,正文,#地图画布{
保证金:0;
填充:0;
高度:200px;
宽度:400px;
}
var映射;
函数初始化(){
变量映射选项={
缩放:8,
中心:新google.maps.LatLng(-34.397150.644),
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById('map-canvas'),
地图选项);
}
console.log('here');
google.maps.event.addDomListener(窗口“加载”,初始化);
地图
我这样称呼它:
<!DOCTYPE html>
<html>
<head>
<title>Simple Map</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<style>
html, body, #map-canvas {
margin: 0;
padding: 0;
height: 200px;
width: 400px;
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
var map;
function initialize() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
}
console.log('here');
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div data-role="dialog">
<div data-role="header" data-theme="d">
<h1>Map</h1>
</div>
<div data-role="content" data-theme="c">
<div id="map-canvas"></div>
</div>
</div>
</body>
</html>
<a href="testnav.htm" data-rel="dialog">View On Map</a>
为什么地图画布不显示
更新
按照Omar的建议,这是我现在运行的代码
<!DOCTYPE html>
<html>
<head>
<title>Simple Map</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
</head>
<body>
<div data-role="dialog">
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
$(document).on('pageshow', '[data-role=dialog]', function () {;
var map;
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
console.log('end');
});
</script>
<div data-role="header" data-theme="d">
<h1>Map</h1>
</div>
<div data-role="content" data-theme="c">
<div id="map-canvas" ></div>
</div>
</div>
</body>
简单地图
$(文档)。在('pageshow','data role=dialog]'上,函数(){;
var映射;
变量映射选项={
缩放:8,
中心:新google.maps.LatLng(-34.397150.644),
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById('map-canvas'),
地图选项);
console.log('end');
});
地图
但是我不确定在哪里添加
google.maps.event.addDomListener(窗口“加载”,初始化)代码>我创建了两个示例,其中地图在jQM对话框中打开。第一个示例包含一个带有映射的独立对话框。第二个示例包含带有链接的jQM页面。单击链接后将打开该对话框
<!doctype html>
<html lang="en">
<head>
<title>jQuery mobile with Google maps - Google maps jQuery plugin</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?v=3&sensor=false&language=en"> </script>
<script type="text/javascript">
var demoCenter = new google.maps.LatLng(41,-87),
map;
function initialize()
{
map = new google.maps.Map(document.getElementById('map_canvas'), {
zoom: 7,
center: demoCenter,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
}
$(document).on("pageinit", "#basic-map", function() {
initialize();
});
</script>
</head>
<body>
<div id="basic-map" data-role="dialog">
<div data-role="header">
<h1><a href="/">jQuery mobile with Google maps v3</a> examples</h1>
<a data-rel="back">Back</a>
</div>
<div data-role="content">
<div class="ui-bar-c ui-corner-all ui-shadow" style="padding:1em;">
<div id="map_canvas" style="height:350px;"></div>
</div>
</div>
</div>
</body>
</html>
带谷歌地图的jQuery手机-谷歌地图jQuery插件
var demoCenter=new google.maps.LatLng(41,-87),
地图;
函数初始化()
{
map=new google.maps.map(document.getElementById('map_canvas'){
缩放:7,
中心:人口中心,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
}
$(document).on(“pageinit”,“基本映射”,function()){
初始化();
});
例子
例子
例子
返回
我希望这有帮助。地图画布div在渲染页面中是否有大小?initialize函数正在运行吗?我尝试过使用内联样式强制大小,但没有任何区别。如果我自己运行这个页面,它会显示良好。但如果从jqm对话框方法调用它,则不会触发初始化(不会写入console.log)。加载外部页面时,
标记中的任何内容都将被忽略。将只导入
中的代码。我已将脚本移动到标记中,但它仍然拒绝显示。正在取得进展……我必须将所有JS代码放入标记中,而不仅仅是放入标记中。我仍然有一个空白页,但至少对话框的大小是正确的。。。。。