0

我有从 netbean 生成的以下代码和来自这个链接的一些修改。该代码在删除后运行良好,而它没有。可能是什么问题? <!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>
4

2 回答 2

2

也许现在回答这个问题为时已晚,但它可以帮助其他人,所以我会尝试。

我仍然不知道这种行为的原因,但我找到了解决方案:您必须为div#map分配一个“位置:固定; ”属性。我没有用 XML 测试它,但在 HTML 文档中它可以正常工作。

于 2012-12-08T08:54:09.517 回答
0

无论您使用的 API 还是您使用它的方式,都依赖于浏览器中的Quirks 模式(即,浏览器故意偏离标准和规范的模式,以模拟旧的有缺陷的浏览器)。

顺便说一句,与模式无关,Firefox 会报告以下错误:

document.getElementsByTagName("head")[0] is undefined
Source: http://openlayers.org/api/OpenLayers.js
Line: 424

此外,页面在两种模式下都显示为空。这就是你所说的“不起作用”吗?

于 2012-05-02T04:57:22.673 回答