我从netbean生成了以下代码,并对此link进行了一些修改。
删除后,代码运行良好,而不使用它。可能是什么问题? <!DOCTYPE html>
<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
**<!DOCTYPE html>**
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>OpenLayers Example</title>
<script src="http://openlayers.org/api/OpenLayers.js"></script>
</h:head>
<body>
<div style="width:100%; height:100%" id="map"></div>
<script defer="defer" type="text/javascript">
var map = new OpenLayers.Map('map');
var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'} );
var dm_wms = new OpenLayers.Layer.WMS(
"Canadian Data",
"http://www2.dmsolutions.ca/cgi-bin/mswms_gmap",
{
layers: "bathymetry,land_fn,park,drain_fn,drainage," +
"prov_bound,fedlimit,rail,road,popplace",
transparent: "true",
format: "image/png"
},
{isBaseLayer: false}
);
map.addLayers([wms, dm_wms]);
map.zoomToMaxExtent();
</script>
</body>
</html>
答案 0 :(得分:2)
回答这个问题可能为时已晚,但它可以帮助其他人,所以我会尝试。
这种行为的原因对我来说仍然未知,但我找到了解决方案:您必须将“ position:fixed; ”属性分配给 div #map 。我没有用XML测试它,但在HTML文档中它可以正常工作。
答案 1 :(得分:0)
您正在使用的API或您使用它的方式依赖于浏览器中的Quirks Mode(即浏览器故意偏离标准和规范的模式,以模拟旧的错误浏览器)。
顺便说一句,独立于模式,Firefox会报告以下错误:
document.getElementsByTagName("head")[0] is undefined
Source: http://openlayers.org/api/OpenLayers.js
Line: 424
此外,该页面在两种模式下都显示为空。这是你所说的“不起作用”吗?