8

マップの読み込み時に、このエラー代替テキスト http://img239.imageshack.us/img239/6936/jserror.pngが表示されます。

エラーは、元の変更されていない OpenLayers.js ファイルの次の行にあります。

return!!(document.namespaces);

私はそれを次のように書き直そうとしました:

return (typeof(document.namespaces) != 'undefined');

それは機能しましたが、document.namespaces へのさらなる参照で同じ「未指定」エラーが発生します。

if(!document.namespaces.olv){document.namespaces.add("olv",this.xmlns); ...

これを次のように書き換えてみました。

if(typeof(document.namespaces.olv) == 'undefined') { ...

しかし、同じ「不明なエラー」が発生します。

このエラーは Internet Explorer (私は 7 でテストしました) でのみ発生し、Firefox では発生しません。

手がかりはありますか?

ありがとう。

4

3 に答える 3

7

本当の問題は、$(document).readyをトリガーするときにIE8でdocument.namespacesの準備ができていないことです(VMLのため)

代わりに使用できます:

jQuery(window).load(function() {} ...);
于 2010-11-09T13:00:45.927 に答える
6

私は解決策を見つけました。

問題は、DOM が Jquery で準備できたときにマップを作成していたことです。

$(document).ready(function(){  ... //create map here [WRONG]

onload イベントの後にマップを作成するだけです。

window.onload = function() { ... // create map here [CORRECT]
于 2009-07-06T07:42:15.797 に答える
0

Internet Explorer の問題は、ページがドキュメントの準備完了またはウィンドウのオンロードに達したときに、M$ ブラウザーがまだマップ キャンバスのサイズを決定できないことです。これを回避したい場合は、マップ div のサイズを設定することも検討してください。

<div id="map" style="width:250px;height:250px"></div>
于 2009-07-23T16:38:08.737 に答える