2016-06-24 3 views
1

У меня есть HTML-код, как это:функция загрузки JQuery после видео загружается

... <video id="abc" preload="auto" autoplay="autoplay" loop="loop" webkit-playsinline=""> 
    <source src="3.mp4" type="video/mp4"> 
</video> ... 

И я использовал этот JS-код:

$(document).ready(function() { 
"use strict"; 


    $("#abc").load(function() { 
     console.log(3); 
    }); 
}); 

Я хочу запустить эту функцию, когда видео нагрузок. Код JS работает с тегом img, но не с тегом video. Я хочу, чтобы он работал как тег img. Как я хочу, чтобы он не запускался, когда загружал видео из кеша.
Как я могу это сделать?

ответ

3

Элемент HTML video не имеет load события. У него есть другие, такие как loadstart, loadeddata или loadedmetadata. См. Полный список возможных событий viedo here.

$(function() { 
    "use strict"; 

    $("#abc").on("loadstart", function() { 
     console.log(3); 
    }); 
}); 

loadeddata: Срабатывает, когда браузер загрузил текущий кадр аудио/видео
loadedmetadata: Срабатывает, когда браузер загруженных метаданных для аудио/видео
loadstart: Пожары, когда браузер начинает искать аудио/видео

+0

Как насчет кеша? Как запустить функцию только в том случае, если браузер не использует кеш? –

+0

Даже из кеша он запускает события. Я не знаю решения для события, которое срабатывает только при первой загрузке. Прости. Но зачем это вообще нужно? – eisbehr

0

Вы должны использовать событие loadeddata, чтобы узнать, когда загружено видео, вы можете увидеть все свойства события здесь:

loadeddata event

И пример здесь:

var video = document.getElementById("abc"); 
video.onloadeddata = function() { 
    alert("Browser has loaded the current frame"); 
}; 

вы можете использовать JQuery селекторы тоже.

+0

Как это работает с кешем? Выполняет ли функция, когда браузер использует кеш? –

+0

Вы можете попробовать его здесь: http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_av_event_loadeddata. я не нашел проблем с кешем – Mikel

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