У меня есть небольшой кусочек JavaScript, который меняет миниатюру видео на встроенное видео, скрытое за ним по клику пользователя:
(function($){
$(document).ready( function(){
$(".video-image").click(function(){
$(".video-embed").css({"opacity":"1","display":"block"});
$(".video-embed")[0].src += "&autoplay="+autoplay;
$(this).unbind("click");
});
} );
})(jQuery)
У меня также есть форма на той же странице, которая при отправке переводит пользователя на страницу благодарности. Если при отправке формы видео на главной странице либо приостанавливается, либо продолжает воспроизводиться, а затем пользователь нажимает кнопку «Назад» на странице благодарности, видео на главной странице начинает воспроизводиться снова. Я считаю, что это потому, что JavaScript обрабатывает кнопку «Назад» как событие .click.
По сути, я хочу, чтобы кнопка «Назад» не выполняла JavaScript. Это можно обойти?
Я обнаружил, что смена источника фрейма технически считается изменением страницы, в какой-то момент я делал видеоплеер, который просто менял источник iframe, но каждый раз, когда источник менялся, вам приходилось наносить ответный удар снова — так если вы нажали 5 видео, вам нужно было бы ответить 6 раз, чтобы перейти на предыдущую страницу!
Решение состоит в том, чтобы генерировать и уничтожать фрейм вместо переключения источника — что-то вроде этого для вашего мероприятия:
$("container .video-embed").remove();
$(container).append("<iframe class='video-embed' src='url here'></iframe">
Других решений пока нет …