0

我有几个使用geoPlugin的站点,在 2012 年 9 月 24 日 Microsoft 的 IE 更新之后,我遇到了一些奇怪的问题。我首先注意到我的 nivo 滑块没有出现在我的主页上,所以我深入控制台找到了一个

SCRIPT5009: 'geoplugin_countryCode' is undefined

然后我在谷歌浏览器中调试了同一个页面,那里一切正常。我试图破译有关该更新的 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 回答