Моя цель - загрузить карту OpenLayers, используя внешний файл JS. В голове у меня есть библиотека jQuery, а в теле у меня есть библиотека OpenLayers, мой код Openlayers и тег div.
<script type="text/javascript" src="http://example.com/OpenLayers.js"></script>
<script type="text/javascript" src="http://example.com/MyMapScript.js"></script>
<div id="map"></div>
Однако у меня нет доступа к тегу body, поэтому я не могу запустить onload="init()"
, как работает большинство примеров.
Вместо этого в нижней части MyMapScript.js
я добавил строку ниже.
jQuery(window).load(init());
Это где-то немного странно. Используя Firebug, я вижу, что этот код вызывается и что он инициализирует объект карты со всеми его свойствами. Я также вижу, что он вызывает сервер WMS и успешно получает все фрагменты карты. Однако на самом деле он ничего не рисует на странице, и никакие дополнительные элементы div не добавляются в HTML.
На этой странице рассказывается о похожей проблеме, но я не уверен, как применить ее к моей ситуации, поскольку для меня на самом деле вызывается init()
http://bytes.com/topic/javascript/answers/855670-unusual-behavior-function-calls-java-script
Решение, которое я нашел в конце, состоит в том, чтобы сделать это.
<script type="text/javascript" src="http://example.com/OpenLayers.js"></script>
<script type="text/javascript" src="http://example.com/MyMapScript.js"></script>
<script type="text/javascript"> window.onload=init; </script>
<div id="map"></div>
Что работает, но похоже на выдумку.
Есть ли способ инициализировать карту OpenLayers из внешнего файла javascript?
Что-то не так с моим решением window.onload=init;
?
Если я должен сделать это в соответствии с HTML, есть ли лучший способ сделать это?