Доброго времени суток Как многие знают timecode ссылки, те где указывают время на видео, не работают, так что я немного подморочился и написал немного кода
Цитата
// Forward video to given time function toTimeCode(timeCode) { if (r=timeCode.match(/(\d*):(\d+)/)) { seconds=(parseInt(r[1]) || 0)*60+parseInt(r[2]); video = $("video")[0]; video.currentTime = seconds; // if (video.paused) {video.play();} } }
$(function() { var timeCodeRegExp = /.*[&?]s=(.*)[$&]*/
// Set handler for timecode links $("div.quote_content a").each(function(i,l){ if (t=l.href.match(timeCodeRegExp)){ $(this).click(t[1],function(e) {toTimeCode(e.data);return false;}); } });
// Forward current video if timecode is in the URL if (t=window.location.href.match(timeCodeRegExp)) { toTimeCode(t[1]); } });
Если вставить это дело в шапку страницы (в тэге script, естественно), заработает перемотка, но без воспроизведения. Что бы заработало воспроизведение, надо убрать "//" в начале 7й строки и изменить doctype документа (первая строка) на HTML5.
Цитата
<!DOCTYPE html>
Это умозаключение заняло больше всего времени
Код можно будет серьёзно оптимизировать, если на сервере ссылкам с таймкодом будут присваивать определённый класс, а время присваивать в виде отдельного атрибута. Если будут баги или вопросы, пишите, поправлю/отвечу
function toTimeCode(timeCode) {
if (r=timeCode.match(/(\d*):(\d+)/)) {
seconds=(parseInt(r[1]) || 0)*60+parseInt(r[2]);
video = $("video")[0];
video.currentTime = seconds;
// if (video.paused) {video.play();}
}
}
$(function() {
var timeCodeRegExp = /.*[&?]s=(.*)[$&]*/
// Set handler for timecode links
$("div.quote_content a").each(function(i,l){
if (t=l.href.match(timeCodeRegExp)){
$(this).click(t[1],function(e) {toTimeCode(e.data);return false;});
}
});
// Forward current video if timecode is in the URL
if (t=window.location.href.match(timeCodeRegExp)) {
toTimeCode(t[1]);
}
});
Код можно будет серьёзно оптимизировать, если на сервере ссылкам с таймкодом будут присваивать определённый класс, а время присваивать в виде отдельного атрибута. Если будут баги или вопросы, пишите, поправлю/отвечу