我的目標是使用外部JS文件加載OpenLayers地圖。在頭上,我有一個jQuery庫,並在體內我有OpenLayers庫,我的Openlayers代碼和div標籤。從外部JavaScript文件初始化openlayers地圖
<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>
這有效,但感覺像一個軟糖。
有沒有辦法從外部JavaScript文件初始化OpenLayers地圖? 我的window.onload=init;
解決方案有什麼問題嗎? 如果我必須使用HTML進行內聯,是否有更好的方法呢?
標記爲答案,雖然在你自己的問題上感覺很奇怪。幫助他人找到解決方案。 – 2011-02-10 17:43:06