我在 ZK 工作,现在我需要使用 Google API 地图。我有时在其他框架中使用过这个 API。我不显示地图。首先,我认为问题可能出在 CSS 上,但事实并非如此。我向窗口的 onLoad 事件添加了一个初始化(映射)函数,但我仍然遇到同样的问题。我使用 js 控制台在浏览器中调试代码,发现窗口事件加载不可用,因此我从 div 的事件加载(其中包含地图)调用函数初始化,js 控制台再次显示相同信息。我使用指令
<div id="map_canvas" style="width: 320px; height: 480px;" xmlns:w="http://www.zkoss.org/2005/zk/client" w:onClick="initialize()"></div>
但是没有显示div。最后我用了一个纯html元素,使用ZK的html标签:
<html><![CDATA[
<div id="map_canvas" onload="initialize()" style="width: 320px; height: 480px;"/>
]]></html>
但是js控制台中的结果又是
<div class="noscript"><p>Sorry, JavaScript must be enabled.<br/>Change your browser options, then <a href="">try again</a>.</p></div>
我想知道显示地图的功能不这样做。我认为问题是js,但我不确定,有人告诉我问题是否是调用的js吗?
谢谢。
编辑:
我已经使用这种方式来做到这一点(非常感谢 Sean Connolly:How get the zk element id from js)
<zk>
<script type="text/javascript"
src="http://maps.googleapis.com/maps/api/js?key=API_KEY&sensor=false">
</script>
<script type="text/javascript">
var map;
function initialize() {
var latlng = new google.maps.LatLng(-34.397, 150.644);
var mapOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(zk.Widget.$(jq('$map_canvas2')).$n(), mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
<div id="map_canvas2" style="width: 1320px; height: 1480px;" />