modernizr不使用IE9及更低版本

时间:2013-12-21 23:29:39

标签: jquery html5 modernizr pushstate popstate

当我点击我网站中的链接时,它可以在主流浏览器中使用,但IE9及更低版本不起作用。我点击链接,没有任何反应!控制台说:“不推荐使用event.returnValue。请改用标准的event.preventDefault()。”

我在这个网站上使用这种方法:http://sudojesse.github.io/dynamic-page/index.html

当我在IE9中使用这个网站并降低它的作用(刷新页面,但它的工作原理!)。 我做错了什么?

编辑:将所有内容放在子文件夹中时,它可以正常工作!这可能是htacess的事吗?

  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<script type='text/javascript' src='js/modernizr.js'></script>
<script>$(function() {

if(Modernizr.history){

var newHash      = "",
    $mainContent = $("#main-content"),
    $pageWrap    = $("#page-wrap"),
    baseHeight   = 0,
    $el;

$pageWrap.height($pageWrap.height());
baseHeight = $pageWrap.height() - $mainContent.height();

$( "a" ).on("click", function() {
    _link = $(this).attr("href");
    history.pushState(null, null, _link);
    loadContent(_link);
    return false;
});

function loadContent(href){
    $mainContent
            .find("#guts")
            .fadeOut(200, function() {
                $mainContent.hide().load(href + " #guts", function() {
                    $mainContent.fadeIn(200, function() {
                        $pageWrap.animate({
                            height: baseHeight + $mainContent.height() + "px"
                        });
                    });

                });
            });
}

$(window).bind('popstate', function(){
   _link = location.pathname.replace(/^.*[\\\/]/, ''); //get filename only
   loadContent(_link);
});
} // otherwise, history is not supported, so nothing fancy here.
});</script>

2 个答案:

答案 0 :(得分:0)

尝试:

$( "a" ).on("click", function(e) {
    _link = $(this).attr("href");
    history.pushState(null, null, _link);
    loadContent(_link);
    e.preventDefault();
});

答案 1 :(得分:0)

它现在有效! 原来一个脚本(jquery lavalamp)阻止它,但只在IE中! NSA应删除该浏览器!!