0

geoPluginを使用しているサイトがいくつかありますが、2012 年 9 月 24 日の Microsoft の IE アップデートの後、奇妙な問題が発生しています。自分の nivo スライダーがホームページに表示されていないことに最初に気づいたので、コンソールを調べて

SCRIPT5009: 'geoplugin_countryCode' is undefined

次に、Google Chrome で同じページをデバッグしましたが、すべて正常に動作しています。その更新に関する KB2744842 速報を解読しようとしました

これが私のJavaScriptです:

<script src="https://ssl.geoplugin.net/javascript.gp" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function() {
        var country = geoplugin_countryCode();

        if(country === 'CA'){
            $('#notification').html('<div class="attention" style="display: none;">You are in Canada</div>');
            $('.attention').fadeIn('slow');
            $('html, body').animate({ scrollTop: 0 }, 'slow');
        }else if(country != 'US'){
            $('#notification').html('<div class="attention" style="display: none;">You are in the USA</div>');
            $('.attention').fadeIn('slow');
            $('html, body').animate({ scrollTop: 0 }, 'slow');
        }else{
            //nothing stupid IE
        }

    });
    $('.geoClose').live('click', function() {
        console.log('geoplugin notify closed');
        document.cookie = 'geoClose=true;'
    });
</script>

HTML:

<div id="wrapper">
  <div id="header">Header Text</div>
  <div id="notification"></div>
  <div id="content">Content Here!</div>
  <div id="footer"></div>
</div>​
4

1 に答える 1

0

geoPlugin は最近、SSL リクエストに関するいくつかのポリシーを変更しました。明らかに IE は実装されたリダイレクトに従いませんが、他のブラウズはそうします。

結果のコード:

<script src="http://www.geoplugin.net/javascript.gp" type="text/javascript"></script>
<script src="http://www.geoplugin.net/statistics.gp" type="text/javascript"></script>
<!--<script src="https://ssl.geoplugin.net/javascript.gp" type="text/javascript"></script>-->
<script type="text/javascript">
//<![CDATA[
    $(document).ready(function() {
        var country = geoplugin_countryCode();

        if(country === 'CA'){
            $('#notification').html('<div class="attention" style="display: none;">You are in Canada</div>');
            $('.attention').fadeIn('slow');
            $('html, body').animate({ scrollTop: 0 }, 'slow');
        }else if(country != 'US'){
            $('#notification').html('<div class="attention" style="display: none;">You are in the USA</div>');
            $('.attention').fadeIn('slow');
            $('html, body').animate({ scrollTop: 0 }, 'slow');
        }else{
            //nothing stupid IE
        }

    });
    $('.geoClose').live('click', function() {
        console.log('geoplugin notify closed');
        document.cookie = 'geoClose=true;'
    });
//]]>
</script>
于 2012-09-28T17:57:09.460 に答える