Openlayersを使用してマップを表示するDrupal Webサイトを作成しました。これらのマップの1つに、ユーザーがマップに表示されているデータを動的に変更するために使用できる「フィルタ」がいくつかあります。データは各国のバブルとして表示されています。バブルはOpenlayersのAPIを使用して描画されます。フィルターが選択されている間、かなりの量の計算がシーンの後ろに行きます。私は長い実行ループを避けるためにsetTimeoutを使用しました。フィルタは正常に動作します。ユーザーがリンクをクリックして別のページに移動しようとすると、いくつかのフィルターがクリックされた後、IE7とIE8で次のエラーが表示されます。 -IE7とIE8で別のページにナビゲートしようとしているときに「このスクリプトの実行を停止する」エラー
"このスクリプトの実行を停止します?
実行し続けると、コンピュータが応答しなくなることがあります。
このエラーは他のブラウザには表示されず、リンクがクリックされるまでIE7,8では表示されません。この点に関するポインタは高く評価されます。
更新:問題はOpenLayersのイベントキャッシュにありました。 OpenLayersのウィンドウアンロードイベントでイベントキャッシュがクリアされ、IE7とIE8でスタックされていました(なぜそうはわかりません)。これまでは、通常のリンクをクリックしたときにOpenLayers.Event.unloadCache()を呼び出すことで、ユーザーが別のリンクをクリックしたときに問題を解決できました。
ページへのリンクを置く場合、私たちはコードに見ることができます。 – Rodrigo