2012-05-13 13 views
0

私はCraftmap pluginを次のテストサイトで使用しています:http://hhglobal.energycell.co.uk/locations/IE7でのCraftmapの問題

静的グローバルマップの下に、アメリカ、ヨーロッパ、アジア太平洋のタブがあり、Craftmapのインスタンスを表示します。

これはIE7またはIE8を除くすべてのブラウザで問題なく動作します。何らかの理由で、両方のブラウザでタブをクリックすると、プリローダーの図が表示され、画像が利用可能で正しくリンクされているにもかかわらず、地図画像は表示されません。

誰かに何か提案があるのでしょうか?それらの2つのブラウザは、何らかの奇妙な理由のためにマップイメージをロードしないようです。

私はプラグインの開発者からいくつかのサポートを要請しましたが、現在利用できないようです。 :/

答えて

2

このエラーは、IE7でイメージをキャッシュするために発生します。 jQuery load() IE7にキャッシュされた画像の場合には、preloadイメージが消えない場合、メソッドは起動しませんでした。

これを修正するには、マークアップで画像にランダムにデータを追加する必要があります。例えば

タイムスタンプ:あなたがイメージに3個の異なる乱数を追加する必要が同じイメージを持っているよう

<div class="demo1"> 
    <img src="/assets/framework/world_map.jpg?23456897" class="imgMap" /> 
<!-- ... your code ... --> 
<div class="demo2"> 
    <img src="/assets/framework/world_map.jpg?907784534235" class="imgMap" /> 
<!-- ... your code ... --> 
<div class="demo3"> 
    <img src="/assets/framework/world_map.jpg?11123423535" class="imgMap" /> 
<!-- ... your code ... --> 

注意。

それともcraftmap.jsコード変更することができます前に

$(img).addClass(S.image.name).attr('src', src).load(function(){ 

検索機能initpreloader内のクラス:

init: function(){ 
    var img = new Image(), 
     src = IMG.attr('src'); 
    P.preloader.create(); 
    $(img).addClass(S.image.name).attr('src', src).load(function(){ 
     var t = $(this), 
      css = { 
       width: this.width, 
       height: this.height 
      } 
     t.css(css); 
     IMG.remove(); 
     P.preloader.remove(); 
     S.preloader.onLoad.call(this, t, css); 
    }).appendTo(C); 
}, 

や画像srcにランダムなデータを追加しますA FTER:

$(img).addClass(S.image.name).attr('src', src + '?' + Math.random() * (new Date().getTime())).load(function(){ 

あるいはさらに良い:

あなたは1つのマップのみをロードするよう、あなたはpreloadイメージを必要としなかった場合は、追加することによって、手動でpreload要素を無効にすることができます:あなたのinit.js

$('.preloader').remove(); 

をのメソッドが初期化された後のファイル:

$('.demo3').craftmap({ 
image: { 
    width: 2046, 
    height: 925 
}, 
    map: { 
     position: '855 410' 
    } 
}); 
$('.preloader').remove(); // IE7 fix 
+0

素晴らしい、ありがとう。これはIE7でうまくいかなかった理由を疑問に思って数日間狂ってしまいました。 – doubleplusgood