我有一個開發中的Google Maps應用程序https://sites.google.com/site/collectinginterests/somerset-post-offices。側欄是動態構建的,並使用mktree(來自http://www.javascripttoolbox.com/lib/mktree/)摺疊視圖。Javascript document.getElementById(「side_bar」)。innerHTML mktree適用於Firefox,但不適用於Chrome或IE。
頁面在Firefox中顯示OK(即摺疊側欄),但不顯示Chrome或IE中全部顯示無序列表(無[+]按鈕)的IE - 至少對我而言。我注意到,偶爾在Firefox中,側欄格式不正確,但重新加載頁面時可以。沒有錯誤發現在JavaScript控制檯。
我已經捕獲了動態創建的側欄HTML,將它放在測試頁面中,並且在所有三種瀏覽器中都顯示正常。
我意識到我沒有包含任何代碼片段,但我不知道哪些位是相關的,特別是側欄html可以單獨運行。
更多後來調試:我把側欄放在靜態html中(使用和動態創建時完全一樣的html),它可以在所有三種瀏覽器上工作(即壓縮並顯示[+]按鈕)。
所以我的問題似乎使用
document.getElementById("side_bar").innerHTML = side_bar;
,並沒有得到通過Chrome和IE(&偶爾Firefox)的完全加工幹,或許與所有其他處理相關的正在做填充谷歌地圖。
該網頁到該元素被重新加載是:
<table border=1>
<tr>
<td>
<div id="map" style="width: 950px; height: 750px"></div>
</td>
<td width = 300 valign="top" style="color: #4444ff;">
<div id="side_bar" style="overflow:auto; height:750px;">
*** static HTML inserted here and it works
</div>
</td>
</tr>
</table>
然而,更多的調試後:我試着走動的處理,使創建和調用谷歌地圖前重寫側邊欄創建地圖並繪製標記,但仍無法正確格式化邊欄。
當你的帖子進來時,我幾乎發現了它。我刪除了調用convertTrees的事件處理程序,並在創建側邊欄後自己調用它,它工作的很好。我在本地測試代碼,而不是在Google Gadget監獄中測試代碼(但我仍然在使用Firebug)。 – Leamphil