Как работать с html-тэгом аудио и функцией javascript с событием onload body?

0

Я hava javascript-код (для слайд-шоу) ниже, а также тег html audio. Я хочу, чтобы моя страница загружала каждый компонент, прежде чем воспроизводить слайд-шоу, а также аудиофайл.

У меня нет проблем с использованием window.onload, чтобы удовлетворить мои потребности, чтобы запустить слайд-шоу. но я не знаю, как это сделать с помощью моего тега html.

Я думаю, что я должен написать свой javascript внутри тега body и использовать: body onload = "...". но я не знаю, как!

вот мой код javascript:

<script type="text/javascript">

window.onload = a;

function a() {

        $(document).ready(function(){
        $('#slideshow').cycle({

x:'curtainX', 
sync:  false,
speed:900,
timeout:10, 
delay: 1500,
});
});

setTimeout(plus1,9000);
function plus1() { 

        $(document).ready(function(){
        $('#slideshow').cycle('pause');
});
}

}

</script>  

и это мой звуковой тег:

<audio autoplay loop>
  <source src="kooche.mp3">

спасибо за помощь

  • 0
    Затем воспроизводите аудио, используя JavaScript вместо использования автозапуска.
Теги:

3 ответа

1
Лучший ответ

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

Если это так, вместо включения аудиоэлемента HTML в разметку вы можете динамически создавать аудио элемент в своем скрипте.

Например:

$(document).ready(function(){
    $('#slideshow').cycle('pause');
    // Create the audio element
    var music = new Audio("kooche.mp3");
    music.play();
});

Я также рекомендую проверить, поддерживает ли браузер браузера воспроизведение аудио в формате HTML5.

var audioEl = document.createElement('audio');
// Check this before you try playing your audio
var canPlayAudio = !!(a.canPlayType && a.canPlayType('audio/mpeg;').replace(/no/, ''));

Источник

  • 0
    Спасибо большое . Я проверяю это. оно работает . но у меня есть другая проблема, я уверен, что вы знакомы со слайд-шоу, когда слайд-шоу не активно или не загружено, изображения будут отображаться, потому что они находятся в теге body, как я могу управлять ими так же, чтобы полностью решить проблему? еще раз спасибо за вашу бывшую помощь
  • 0
    Я не уверен, что полностью следую. Таким образом, изображения для слайд-шоу отображаются до того, как страница будет загружена? Я думаю, вам может понадобиться использовать .load (), а не .ready (), потому что .ready () срабатывает, как только DOM готов, но ресурсы (изображения, звуковые файлы) могут быть не готовы. Проверьте это сообщение: stackoverflow.com/questions/5424055/check-if-images-are-loaded
0

Это то, что вам нужно? Он воспроизводит песню при загрузке с использованием .trigger и нет раздутой разметки. http://jsfiddle.net/2xH29/

  • 0
    спасибо, это то, что мне нужно. управлять звуковым тегом из HTML
0

Если jQuery является опцией, вы можете использовать

$(document).ready(function(){
   //my slideshow code
});

Или, если это не вариант, вы можете создать свой собственный псевдо-jQuery-подобный готовый слушатель

function onReady (callback){
    var addListener = document.addEventListener || document.attachEvent,
        removeListener =  document.removeEventListener || document.detachEvent
        eventName = document.addEventListener ? "DOMContentLoaded" : "onreadystatechange"

    addListener.call(document, eventName, function(){
        removeListener( eventName, arguments.callee, false )
        callback()
    }, false )
}

Или, поставьте код слайд-шоу под вопросом в самом низу вашего DOM. Естественно, это будет выполнено последним.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню