2011-12-25 2 views
0

Итак, у меня есть сайт, который является своего рода эмуляции флэш-сайта с JQuery и HTML 5.Audio Несогласованность - Чрезвычайно Непонятные

Audio будет играть при наведении на пункты меню или открыть различные меню - он отлично работает в IE 9 (аудио не поддерживается в 8 или ниже) и хром, но НЕ FF.

Теперь вот загадочная часть: он также отлично работает в FF на моем рабочем столе или на моем тестовом сервере, просто НЕ на сервере, над которым он должен работать.

У кого-нибудь есть мнение, что здесь может быть?

Сайт here для справки. Посмотрите на него в IE9 или Chrome, затем в FF, чтобы понять, что я имею в виду. Вы можете пойти here для моего сервера тестирования, в котором он работает повсюду. Файлы идентичны.

EDIT

По желанию, вот так, как у меня есть материал создан (полный код доступен по следующим предыдущие ссылки и нажав просмотреть исходный код)

<audio id="open2" preload="auto"><source src="support/media/open2.mp3"></source><source src="support/media/open2.ogg"></source></audio> 

Позже. .. Я добавляю следующий код в элемент с последним классом - целое число, соответствующее идентификатору аудиоэлемента. Не зацикливайтесь на этом материале, хотя он явно работает в других браузерах. Я также делаю некоторое обнаружение браузера, так как попытка воспроизведения аудио будет DESTROY на странице в IE 8 и ниже.

document.getElementById('open'+$(this).attr('class').substr($(this).attr('class').length-1)).play(); 
+0

Я просто работал с аудио тегов для проекта Дека HTML5, и я видел, что он Ждут» t работать в FF. Я посмотрю утром, не могли бы вы разместить какой-нибудь демо-код? – Charlie

+0

@Charlie, которого должно быть достаточно, чтобы дать общее представление о том, что происходит - дайте мне знать, если вы хотите больше. Самая загадочная вещь в том, что, если я загружаю файлы с тестового сервера (где он работает в FF) на мой рабочий стол, звук продолжает работать в FF, если я затем беру эти файлы и бросаю их прямо на конечный сайт через FTP они перестают звучать в FF (но продолжают работать в IE9 или хром). Таким образом, у нас есть файлы, работающие в FF как в Интернете, так и в автономном режиме, но просто не на этом одном сервере. Это заставляет меня чувствовать, что это конфигурация сервера, но потом .. она работает в других браузерах. -_- – sdo

+0

Хорошо, что она работает в Safari, затем я буду тестировать Firefox ... Кроме того, вы пробовали использовать файлы '

ответ

0

sdo, ваши файлы не совпадают. Я взял источник с вашего сайта (зал) и с вашего тестового сайта (blueclick.ca) и сравнил их. Хотя существует немало различий в HTML, я чувствую, что следующая логика JS - это ваша проблема. Как вы можете видеть, код отличается. Может быть, правильный код, который не является их на вашем сайте, вызывает проблему. Также может случиться так, что ваш сервер обслуживает кешированную версию страницы. Проверьте их, и это может помочь.

код с вашего рабочего сайта:

$("#navigation li").click(function() { 

     if (!currOpen){ 
      if (!(BrowserDetect.browser == "Explorer" && BrowserDetect.version < 9)) 
       document.getElementById('open'+$(this).attr('class').substr($(this).attr('class').length-1)).play();  
       customToggle($(this)); 
       currOpen = getId($(this)); 
     } else if (getId($(this)) == currOpen) { 
       $("#"+currOpen).slideToggle('slow'); 
       currOpen = 0; 
     } else { 
       $("#"+currOpen).slideToggle('slow'); 
      if (!(BrowserDetect.browser == "Explorer" && BrowserDetect.version < 9)) 
       document.getElementById('open'+$(this).attr('class').substr($(this).attr('class').length-1)).play();  
       customToggle($(this)); 
       currOpen = getId($(this)); 
     } 

     function customToggle(obj){ 
      $("#"+getId(obj)).slideToggle('slow'); 
     } 

     function getId(obj){ return obj.attr('id').substr(4) } 

    }); 

код с вашего не работает сайт:

$("#navigation li").click(function() { 

     if (!currOpen){ 
       if (BrowserDetect.browser == "Explorer" && BrowserDetect.version < 9){ 
       // do something else 
      } else { 
       document.getElementById('open'+$(this).attr('class').substr($(this).attr('class').length-1)).play(); 
      }    document.getElementById('open'+$(this).attr('class').substr($(this).attr('class').length-1)).play();  
       customToggle($(this)); 
       currOpen = getId($(this)); 
     } else if (getId($(this)) == currOpen) { 
       $("#"+currOpen).slideToggle('slow'); 
       currOpen = 0; 
     } else { 
       $("#"+currOpen).slideToggle('slow'); 
      if (BrowserDetect.browser == "Explorer" && BrowserDetect.version < 9){ 
       // do something else 
      } else { 
       document.getElementById('open'+$(this).attr('class').substr($(this).attr('class').length-1)).play(); 
      } 
       customToggle($(this)); 
       currOpen = getId($(this)); 
     } 

     function customToggle(obj){ 
      $("#"+getId(obj)).slideToggle('slow'); 
     } 

     function getId(obj){ return obj.attr('id').substr(4) } 

    }); 
+0

Спасибо за помощь .. да за прошлое несколько часов я внес некоторые незначительные изменения, чтобы попытаться прояснить код, удалить двойные негативы и т. д. Все еще не удалось. Как я уже сказал в своем сообщении в Charlie, я могу буквально FTP-код с моего рабочего тестового сервера на сервер гостиной и он перестанет работать. Я думал, что это кеш, но эта ошибка согласована между отдельными компьютерами/браузерами. – sdo

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