Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Jquery: непонятное поведение в разных браузерах, с сервера грузит, с сохр. страницы - нет 
V
    Опции темы
XAKEPEHOK
  Дата 23.2.2012, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 18.10.2006
Где: Matrix

Репутация: нет
Всего: 0



Всем доброго дня и с праздником! Ребят, подскажите пожалуйста, ума не приложу в чем косяк. Работаю с jquery плеером AudioJS. 

Вот есть пример http://kolber.github.com/audiojs/demos/test6.html (см. исходник)
Содержащий следующие код
Код

    <script src="./jquery.js"></script>
    <script src="../audiojs/audio.js"></script>
    <script>
      $(function() { 
        // Setup the player to autoplay the next track
        var a = audiojs.createAll({
          trackEnded: function() {
            var next = $('ol li.playing').next();
            if (!next.length) next = $('ol li').first();
            next.addClass('playing').siblings().removeClass('playing');
            audio.load($('a', next).attr('data-src'));
            audio.play();
          }
        });
        
        // Load in the first track
        var audio = a[0];
            first = $('ol a').attr('data-src');
        $('ol li').first().addClass('playing');
        audio.load(first);

        // Load in a track on click
        $('ol li').click(function(e) {
          e.preventDefault();
          $(this).addClass('playing').siblings().removeClass('playing');
          audio.load($('a', this).attr('data-src'));
          audio.play();
        });
        // Keyboard shortcuts
        $(document).keydown(function(e) {
          var unicode = e.charCode ? e.charCode : e.keyCode;
             // right arrow
          if (unicode == 39) {
            var next = $('li.playing').next();
            if (!next.length) next = $('ol li').first();
            next.click();
            // back arrow
          } else if (unicode == 37) {
            var prev = $('li.playing').prev();
            if (!prev.length) prev = $('ol li').last();
            prev.click();
            // spacebar
          } else if (unicode == 32) {
            audio.playPause();
          }
        })
      });
    </script>


Я беру, сохраняю эту страницу и переписываю пути с относительных на абсолютные, т.е.
Код

    <script src="http://kolber.github.com/audiojs/demos/jquery.js"></script>
    <script src="http://kolber.github.com/audiojs/audiojs/audio.js"></script>
    <script>
      $(function() { 
        // Setup the player to autoplay the next track
        var a = audiojs.createAll({
          trackEnded: function() {
            var next = $('ol li.playing').next();
            if (!next.length) next = $('ol li').first();
            next.addClass('playing').siblings().removeClass('playing');
            audio.load($('a', next).attr('data-src'));
            audio.play();
          }
        });
        
        // Load in the first track
        var audio = a[0];
            first = $('ol a').attr('data-src');
        $('ol li').first().addClass('playing');
        audio.load(first);

        // Load in a track on click
        $('ol li').click(function(e) {
          e.preventDefault();
          $(this).addClass('playing').siblings().removeClass('playing');
          audio.load($('a', this).attr('data-src'));
          audio.play();
        });
        // Keyboard shortcuts
        $(document).keydown(function(e) {
          var unicode = e.charCode ? e.charCode : e.keyCode;
             // right arrow
          if (unicode == 39) {
            var next = $('li.playing').next();
            if (!next.length) next = $('ol li').first();
            next.click();
            // back arrow
          } else if (unicode == 37) {
            var prev = $('li.playing').prev();
            if (!prev.length) prev = $('ol li').last();
            prev.click();
            // spacebar
          } else if (unicode == 32) {
            audio.playPause();
          }
        })
      });
    </script>


А вот здесь и начинают происходить чудеса. Chrome, Safari и IE9 работаю нормально - открыв сохраненную страничку в этих браузерах можно слушать музыку.
А вот Opera и FF 10 - отказываются. При нажатии на Play или на сам трек ничего не происходит. Самое странное то, что и Опера и FF прекрасно воспроизводят аудио по этой исходной ссылке http://kolber.github.com/audiojs/demos/test6.html
Сохраненную страничку прилагаю в аттаче.

В чем дело?

Это сообщение отредактировал(а) XAKEPEHOK - 23.2.2012, 12:57

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  audio.js.zip 1,89 Kb
PM ICQ   Вверх
XAKEPEHOK
Дата 24.2.2012, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 18.10.2006
Где: Matrix

Репутация: нет
Всего: 0



Разобрался! Страничку дело было из-за flash плеера. Он подключался через js и передаваемые ему параметры в целях безопасности flash игнорировал. Надо было открывать страничку не через file:// а через http://localhost/


Цитата(http://kolber.github.com/audiojs/)
 
Flash local security
Note: For local content running in a browser, calls to the ExternalInterface.addCallback() method work only if the SWF file and the containing web page are in the local-trusted security sandbox.
http://help.adobe.com/en_US/FlashPlatform/...l#addCallback()
This means that unless you have gone through the rigmarole of setting up your flash player security settings for local files, ExternalInterface calls will only work when the page is loaded from a ‘domain’. http://localhost counts, but any file:// requests don’t.

PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0386 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.