Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.08.2011, 14:40
Новичок на форуме
Отправить личное сообщение для Drus Посмотреть профиль Найти все сообщения от Drus
 
Регистрация: 12.08.2011
Сообщений: 2

Скрипт работает через раз
Все банально: есть скрипт на сайте, который при заходе делает следующее проверят наличие хеша в ссылке, если таковой есть - выдает новую страницу, заменяя старую, если нет - оставляет текущую.
Вне зависимости от хеша происходит поиск пункта меню с урелом как у текущей страницы и блик(подсветка активного пункта меню) заезжает под его название.

Проблема - работает через раз, в частности после перехода с Гугла. Наиболее часто происходит в Осле. помогите пожалуйста, мозг уже сломал себе.

сайт __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"});
}


Прошу простить за возможные косяки, первый пост

Последний раз редактировалось Drus, 12.08.2011 в 14:42. Причина: не дописал =)
Ответить с цитированием
  #2 (permalink)  
Старый 15.08.2011, 15:00
Новичок на форуме
Отправить личное сообщение для Drus Посмотреть профиль Найти все сообщения от Drus
 
Регистрация: 12.08.2011
Сообщений: 2

Ребята, ну хоть мысли по этому поводу подкиньте, почему оно так.

В принципе ответ не требуется, уже устал искать. Вопрос решен самым простым способом - переадресацией с использованием хеша, так нельзя, но работает.

Последний раз редактировалось Drus, 16.08.2011 в 09:33. Причина: да ну и ладно.
Ответить с цитированием
  #3 (permalink)  
Старый 31.12.2015, 00:38
Новичок на форуме
Отправить личное сообщение для Боря Посмотреть профиль Найти все сообщения от Боря
 
Регистрация: 26.06.2015
Сообщений: 2

У меня тоже самое с самым простым скриптом alert('Hellow, world') в опере 34.0 . Так что думаю если вам никто не ответил, скорее всего в вашем скрипте нет явной проблемы или ее вообще нет и проблемы в чем то другом, в браузере например.
Ответить с цитированием
  #4 (permalink)  
Старый 31.12.2015, 00:49
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Drus,
строки 39-40, наверное так :
urel = $(this).attr('href');
parent.location.hash = '#'+urel;
Ответить с цитированием
  #5 (permalink)  
Старый 31.12.2015, 03:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Drus
Проблема - работает через раз, в частности после перехода с Гугла.
Вообще-то хеш сам по себе на сервер не передается.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт не работает в FF и опера, но работает в IE(в чем дело???) Cepera Firefox/Mozilla 1 24.08.2012 16:46
ссылка с fadeIn работает через раз oblomov86 jQuery 1 24.03.2011 17:52
Java скрипт не работает в Opera Eagle28 Ваши сайты и скрипты 3 07.04.2010 19:36
Не работает скрипт в Opere manchant Общие вопросы Javascript 2 19.09.2009 18:35
Скрипт меню-гармошки работает выборочно Extern Элементы интерфейса 2 23.02.2009 15:32