【问题标题】:How to add external JavaScript Library on GWT?如何在 GWT 上添加外部 JavaScript 库?
【发布时间】:2013-01-05 00:21:10
【问题描述】:

我正在为 GWT 使用 OpenLayers 包装器,称为 GWT-OpenLayers

在用户参考页面上,它说您需要在两个文件 gwt.xml 和 .html 上添加参考

像这样在 xml 上:

 <inherits name='org.gwtopenmaps.openlayers.OpenLayers'/>

这个在 html 上

 <script src="http://openlayers.org/api/2.11/OpenLayers.js"></script>

GWT-OpenLayers 有一个展示柜,我正在做的正是展示柜的功能。但是当应用程序启动并且我尝试检查源代码时,我没有在 html 上看到 openlayers 脚本。我尝试添加其他脚本,但不幸的是,该脚本没有出现在源代码中。
更新 01 - html 和浏览器结果:

 <head>
  ...
    <script src="http://www.openlayers.org/api/OpenLayers.js"></script>
    <script type="text/javascript" language="javascript"
        src="GeoStatistics/GeoStatistics.nocache.js"></script>
    <script type="text/javascript" src="ol/OpenLayers.js"></script>
    <script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js">
    </script>
 </head>

浏览器 = Chrome

如您所见,在 html 上添加了几个脚本,但只出现了一个。

更新 02 - 编译后,仍然无法正常工作 我刚刚编译了我的项目,html仍然没有脚本标签。

但是我已经编辑了 html 并加载了项目,并且我已经得到了 script 标签。所以,这是一些解决方案,如果没有任何其他方法可以使用我的脚本标签生成 html,我可以在编译后放置标签。

【问题讨论】:

  • 能否提供您的 HTML 文件和 Module Java 文件的源代码?很可能您的脚本节点只是在 GWT 初始化期间被删除。

标签: java javascript html gwt wrapper


【解决方案1】:

脚本被加载到应用程序上下文中。您可以将 FireFox 与 FireBug 或在 Chrome 开发工具中使用。添加 gwt 开放层展示的屏幕截图,如 FireBugs 脚本选项卡中所示。

第 1 步 - 确保 gwt-openlayers-client 在托管模式和部署模式编译的 GWT 项目类路径中

第 2 步 - 在 gwt 模块 xml 文件中

<inherits name='org.gwtopenmaps.openlayers.OpenLayers' />

第 3 步 - 在 html 头标签中

<script src="http://openlayers.org/api/OpenLayers.js"></script>
<script src="http://openstreetmap.org/openlayers/OpenStreetMap.js"></script>
<script type="text/javascript" language="javascript"
    src="GeoStatistics/GeoStatistics.nocache.js"></script>

第 4 步 -

public void onModuleLoad()
    {
        MapOptions mapOptions = new MapOptions();
        MapWidget mapWidget = new MapWidget( "400px", "300px", mapOptions );

        OSM osm_1 = OSM.Mapnik( "Mapnik" );
        OSM osm_2 = OSM.CycleMap( "CycleMap" );

        osm_1.setIsBaseLayer( true );
        osm_2.setIsBaseLayer( true );

        LonLat lonLat = new LonLat( 6.95, 50.94 );
        lonLat.transform( "EPSG:4326", "EPSG:900913" );

        Map map = mapWidget.getMap();
        map.addLayer( osm_1 );
        map.addLayer( osm_2 );
        map.addControl( new LayerSwitcher() );
        map.addControl( new MousePosition() );
        map.setCenter( lonLat, 12 );
        RootPanel.get().add( mapWidget );
    }

【讨论】:

  • 这不是我的问题,我的问题是:脚本标签没有出现在任何工具上,这导致我使用这个包装器出现问题。如您的屏幕截图所示,openlayers 的脚本标签就在那里。但在我的应用程序上不是。
  • “网络”选项卡是否显示 js 文件的请求并显示 js 文件的任何失败的请求 404 错误。
  • 试试 1) Ctrl + SHIFT + DEL 。 2)托管模式。 3) GWT 在服务器中编译和部署。同时检查所有浏览器。
  • 按照我更新的顺序清理你的html脚本标签。
  • 感谢您的帮助,但编译并没有解决问题。
【解决方案2】:

找到问题了。

Maven 的 GWT 插件没有编译我的主 .html(gwt:compile)

但是,这不是一个真正的问题,因为主 html 几乎没有更新,所以,只需将新的 .html 放在我的文件夹中,这是一个解决方案,不是很好,而是一个解决方案。

【讨论】:

  • html 不会被 GWT 以任何方式更新!!!!!!并注意您的 html 文件中包含两个 OpenLayers.js !!!
  • 两个开放层是一个测试。
  • gwt:compile 必须更新我的 html。在这个问题之前,那个版本没有更新它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-27
  • 2018-02-04
  • 1970-01-01
  • 2016-02-08
  • 1970-01-01
  • 2015-08-22
  • 1970-01-01
相关资源
最近更新 更多