Моя цель - загрузить карту OpenLayers с использованием внешнего JS-файла. В голове у меня есть библиотека jQuery, а в теле у меня есть библиотека OpenLayers, мой код Openlayers и тег div.Инициализация карты openlayers из внешнего файла Javascript
<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>
Однако у меня нет доступа к тегу тела, так что я не могу стрелять onload="init()"
, который, как большинство из примеров работы.
Вместо этого, внизу MyMapScript.js
Я добавил строку ниже.
jQuery(window).load(init());
Здесь он немного странно. Используя Firebug, я вижу, что этот код вызывается и он инициализирует объект карты со всеми его свойствами. Я также вижу, что он вызывает сервер WMS и успешно получает все карты. Однако на самом деле он ничего не рисует на странице, и в HTML не добавляются дополнительные div.
Эта страница рассказывает о подобной проблеме, но я не уверен, как применить ее к моей ситуации, так как для меня фактически вызывается 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, есть ли лучший способ сделать это?
Отметьте как ответ, хотя вам кажется странным делать свой вопрос. Чтобы помочь другим найти решение. –
Ницца Том - ударил головой об этом в течение 2 дней! просто нужен тот встроенный тег стиля, и я уезжаю! – ErichBSchulz
ой, и я также использовал отложенный рендеринг в этом примере, а не переименование myscripts http://openlayers.org/dev/examples/late-render.html – ErichBSchulz