Скрипт работает через раз
Все банально: есть скрипт на сайте, который при заходе делает следующее проверят наличие хеша в ссылке, если таковой есть - выдает новую страницу, заменяя старую, если нет - оставляет текущую.
Вне зависимости от хеша происходит поиск пункта меню с урелом как у текущей страницы и блик(подсветка активного пункта меню) заезжает под его название. Проблема - работает через раз, в частности после перехода с Гугла. Наиболее часто происходит в Осле. помогите пожалуйста, мозг уже сломал себе. сайт __infleur.ru сам скрипт: $(document).ready(function(){ // Осел 6 идет - нах if ($.browser.msie && $.browser.version.substr(0,1)<7) { window.location = "http://infleur.ru/browserversion/ie6.html"; } var base = "http://infleur.ru"; var url = window.location.href; var hash = window.location.hash.substr(1); var index_of_hash = url.indexOf(hash) || url.length; var urel = url.substr(0, index_of_hash); var content = $('#content'); var active = $('.active'); //если есть хеш - даем страницу СЃ переадресацией if(hash.length != 0){ $('.slider').remove(); if(hash.length == 1){ window.location = "http://infleur.ru" } else { $('#menu a[href*='+hash.replace(/\//g, '')+']').each(function (){ getNewPage($(this), content, active, 1); setBlur(); }); } }else { $('#menu a').each(function (){ if (this.href == document.URL) { getNewPage($(this), content, active, 1); setBlur(); } }); } $('#menu a').click(function(event){ event.preventDefault(); document.title = $(this).attr('rel')+"Луи Де Флер - премиум-букеты, доставка цветов Екатеринбург, оформление праздников, организация мероприятий"; urel = $(this).attr('href'); parent.location.hash = urel; getNewPage($(this), content, active); setBlur(); }); }); function getNewPage(aClick, content, active, param){ var offset_click = aClick.offset().left; var width_click = aClick.parent().width(); var width_cur = active.parent().width(); var offset_cur = active.parent().offset().left; var shadowBox = $('#shadow_box'); if(param != 1){ offset_prev = active.offset().left; active.animate({'marginLeft' : (offset_click - offset_cur + (width_click - width_cur)/2) -109}, 900, 'swing'); var htm = aClick.attr('href'); if(((offset_click - 500) - offset_prev) > 0){ shadowBox.css({"display":"block"}); $('.slider').animate({'marginLeft' : "-=2000px"}, 900, function() { content.after(function(){ $(this).load(htm+' .slider', function(){ $('.slider').css('marginLeft', '2000px').animate({'marginLeft' : "-=2000px"}, 600, 'swing', function(){ shadowBox.css({"display":"none"}); }); }); }) }); } else { shadowBox.css({"display":"block"}); $('.slider').animate({'marginLeft' : "+=2000px"}, 900, function() { content.after(function(){ $(this).load(htm+' .slider', function(){ $('.slider').css('marginLeft', '-2000px').animate({'marginLeft' : "+=2000px"}, 600, 'swing', function(){ shadowBox.css({"display":"none"}); }); }); }); }); } } else { offset_prev = active.offset().left; active.css({'marginLeft' : (offset_click - offset_cur + (width_click - width_cur)/2) -109}); var htm = aClick.attr('href'); content.after(function(){ $(this).load(htm+' .slider') }); } } function setBlur(){ $('#button').hover(function(){ $(this).attr('src', '/fileadmin/templ/img/button_h.png'); }, function(){ $(this).attr('src', '/fileadmin/templ/img/button_n.png'); }); } function setShadowBox(shadowBox){ shadowBox.css({"display":"block"}); } function outShadowBox(shadowBox){ shadowBox.css({"display":"none"}); } Прошу простить за возможные косяки, первый пост |
Ребята, ну хоть мысли по этому поводу подкиньте, почему оно так.
В принципе ответ не требуется, уже устал искать. Вопрос решен самым простым способом - переадресацией с использованием хеша, так нельзя, но работает. |
У меня тоже самое с самым простым скриптом alert('Hellow, world') в опере 34.0 . Так что думаю если вам никто не ответил, скорее всего в вашем скрипте нет явной проблемы или ее вообще нет и проблемы в чем то другом, в браузере например.
|
Drus,
строки 39-40, наверное так : urel = $(this).attr('href'); parent.location.hash = '#'+urel; |
Цитата:
|
Часовой пояс GMT +3, время: 14:42. |