У меня есть скрипт, который воспроизводит видео в модальном режиме при нажатии на миниатюру. Это работает только с первым видео, упомянутым в html, поэтому я пытаюсь использовать js, чтобы получить конкретное видео, на котором нажимают на миниатюру.
Я установил в js переменную vidcode и присвоил ей значение адреса первого видео (rLdpnu2dDUY) или как там оно называется. Затем я установил значение 'start' для части ссылки до и 'end' для части ссылки после. Теперь у меня есть «showVideo = начало + vidcode + конец», а затем innerHTML = showVideo, который работает без проблем.
Пока часть впрыска работает. Теперь моя проблема заключается в передаче адреса кликаемого эскиза в переменную vidcode для воспроизведения соответствующего видео. Я смотрел на SO, W3 и Google. У меня есть 6 разных попыток, и ни одна не работает полностью.
Я могу создать ссылку, которая
- Устанавливает переменную, но затем не вызывает скрипт.
- Вызывает скрипт, но не передает переменную.
- Нажмите один большой палец, чтобы установить переменную, затем другой большой палец, чтобы вызвать сценарий. Тогда это сработает, но это дополнительный шаг. По крайней мере, с этим я знаю, что переменная устанавливается ..
<!--== Standard button but requires var vidcode to be preset in the Modal script ==-->
<a href="#" id="button" class="button"><img src="https://img.youtube.com/vi/rLdpnu2dDUY/hqdefault.jpg"></a>
<!--== Add onClick to trigger a mini-script which sets the var vidcode early ==-->
<a href="#" id="button" class="button" onclick="hDSansxhArU()"></a>
<script>function hDSansxhArU(){var vidcode = 'hDSansxhArU';}</script>
<!--== Adding the javascript directly to the link code, yet it does not trigger the Modal script ===-->
<a href="javascript: var vidcode = 'duBjWlIzpzQ'; modalviewer();"></a>
<!--== Adding the javascript directly to the link code, to trigger a mini-script, to then call the modal ===-->
<a href="javascript: buttt();"></a>
<script>function buttt(){var vidcode = 'duBjWlIzpzQ'; modalviewer();}</script>
<!--== Use the video's code as an id, then calling that id immediately and setting it to var vidcode ==-->
<a href="#" id="hDSansxhArU"></a>
<script>
document.getElementById('hDSansxhArU').onclick = function() {
var vidcode = 'hDSansxhArU';
modalviewer()
};
</script>
Точки закомментированы при попытке чего-то другого
function modalviewer(){ //This function usually isn't here
var start = '<iframe width="840" height="472" src="https://www.youtube.com/embed/';
var end = '" frameborder="0" encrypted-media></iframe>';
//var showVideo = start + vidcode + end;
// This part works fine when vidcode gets a value
document.getElementById("button").addEventListener("click", function() {
document.querySelector(".theVideo").innerHTML = showVideo;
document.querySelector(".bg-modal").style.display = "flex";
});
document.querySelector(".bg-modal").addEventListener("click", function() { //.bg-modal to make the surrounding clickable
document.querySelector(".bg-modal").style.display = "none";
document.querySelector(".theVideo").innerHTML = "";
});
};
Ожидаемые результаты:
Нажмите на ссылку и получите
- установить этот адрес в переменную 'vidcode', или
- установить адрес gobbledegook в 'vidcode' отсюда
и либо иметь модальный скрипт в отдельном js-файле, либо внизу страницы.
Как новичок в коде, я горжусь тем, что понял это до сих пор (с предыдущей помощью SO), меня просто расстраивает то, что я могу заставить работать только половину этого за раз: /.