2013-12-21 3 views
0

Когда я нажимаю ссылки на своем сайте, он работает в основных браузерах, но IE9 и ниже не работают. Я нажимаю ссылки и ничего не происходит! Консоль говорит: «event.returnValue устарел. Вместо этого используйте стандартное событие event.preventDefault()».modernizr не работает с IE9 и ниже

Я использую этот метод с этого сайта: http://sudojesse.github.io/dynamic-page/index.html

, когда я использую этот сайт в IE9 и снизить его работы (с обновления страницы, но это работает!). Что я делаю неправильно?

EDIT: При установке всего в подпапку он работает! Может быть, это что-то с 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> 
+0

API истории не поддерживается в IE9 и ниже, поэтому 'Modernizr.history' должен возвращать false, и сценарий никогда не выполняется. – adeneo

+0

Как это изменить? почему он работает здесь: http://sudojesse.github.io/dynamic-page/index.html – user3086671

+0

Вы не можете изменить это, если он не поддерживает API, он не поддерживает API. Почему это работает на какой-то демонстрационной странице вне меня, но это, безусловно, не API истории, работающий в IE9, это, вероятно, перезагрузка страницы и просто притворство анимации. – adeneo

ответ

0

Try:

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

спасибо! но это не изменило ничего с IE. – user3086671

+0

положите это там: 'var evt = e || window.event; 'и заменить' e.preventDefault() 'на' evt.preventDefault() ' – Deryck

+0

спасибо, но это мне не помогло! Я только узнал, что javascript делает IE неработоспособным. не уверен, справиться с этим сейчас – user3086671

0

Он теперь работает! Выключает скрипт (jquery lavalamp) блокирует его, но только в IE! NSA должен удалить этот браузер!

Смежные вопросы