| 
 Youtube start/stop Добрый день! Нашел скрипт для запуска и остановки (через долю секунды) встроенного на страницу Youtube-видео. Цитата: 
 Все работает, но видео приходится встраивать нестандартно: Цитата: 
 Цитата: 
 | 
| 
 https://jsfiddle.net/fzu4ct7t/21/ Стоит обратить внимание на src="https://www.youtube.com/embed/oRSijEW_cDM?enablejsapi=1&origin=https%3A%2F%2Ffid dle.jshell.net" | 
| 
 Цитата: 
 Скажите, пожалуйста, что это такое? Вы имели в виду, что есть отличие от стандартного кода встраивания? | 
| 
 есть дополнительные параметры  enablejsapi=1 и origin=https%3A%2F%2Ffid dle.jshell.net Первый разрешает управление плеером с помощью js api Второй отвечает за за CORS разрешения | 
| 
 Странно. Здесь https://jsfiddle.net/fzu4ct7t/21/ все работает. Но ставлю этот код на сайт, перестает. И наоборот, ставлю свой (работающий на сайте) код в jsfiddle.net - не работает. Сравниваю построчно текущий код и ваш. У вас появляется элемент g = window; и функции переписаны иначе. 
function onYouTubeIframeAPIReady() {
и
g.onYouTubeIframeAPIReady = function () {
function onPlayerReady(event) {
и
g.onPlayerReady = function(event) {
и т.д. | 
| 
 Скажите, пожалуйста, почему этот код https://jsfiddle.net/5swak436/1/ реальном сайте не работает? | 
| 
 Цитата: 
 
<iframe data-assign="player" width="560" height="315" src="https://www.youtube.com/embed/oRSijEW_cDM" frameborder="0" allowfullscreen></iframe>
<form>
	<input type="button" value="Пауза" onclick="player.pauseVideo()">
	<input type="button" value="Продолжить" onclick="player.playVideo()">
</form>
<script src="https://www.youtube.com/iframe_api" async></script>
<script>
const youtubeAPIReady = new Promise(function(resolve) {
	window.onYouTubeIframeAPIReady = resolve;
});
for(const player of document.querySelectorAll('iframe[src*="youtube.com"][src*="embed"]')) {
	const url = new URL(player.src);
	url.searchParams.set("enablejsapi", "1");
	player.src = url.href;
	
	youtubeAPIReady.then(function() {
		window[player.dataset.assign] = getYouTubePlayer(player);
	});
}
function getYouTubePlayer(element) {
	return new YT.Player(element, {
		events: {
			onReady: onPlayerReady,
			onStateChange: onPlayerStateChange
		}
	});
	function onPlayerReady(event) {
		event.target.playVideo();
	}
	var done = false;
	
	function onPlayerStateChange(event) {
		if (event.data === YT.PlayerState.PLAYING && !done) {
			done = true;
		}
	}
}
</script>
 | 
| 
 Malleys, Очень круто! | 
| 
 Цитата: 
 
<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
</head>
<body>
<style type="text/css">
    .thumb-wrap{
        border: 8px #FFD700 solid;
         max-width: 560px;
    }
</style>
<iframe data-assign="player" width="560" height="315" src="https://www.youtube.com/embed/x-p_ymteSwo" frameborder="0" allowfullscreen></iframe>
<form>
    <input type="button" value="Пауза" onclick="player.pauseVideo()">
    <input type="button" value="Продолжить" onclick="player.playVideo()">
</form>
<iframe data-assign="player1" width="560" height="315" src="https://www.youtube.com/embed/NslVg_Wxr_Q" frameborder="0" allowfullscreen></iframe>
<form>
    <input type="button" value="Пауза" onclick="player1.pauseVideo()">
    <input type="button" value="Продолжить" onclick="player1.playVideo()">
</form>
<script src="https://www.youtube.com/iframe_api" async></script>
<script>
const youtubeAPIReady = new Promise(function(resolve) {
    window.onYouTubeIframeAPIReady = resolve;
});
const div = document.createElement('div');
      div.className = 'thumb-wrap';
for(const player of document.querySelectorAll('iframe[src*="youtube.com"][src*="embed"]')) {
    const clone = div.cloneNode();
    player.parentNode.replaceChild(clone, player);
    clone.appendChild(player)
    const url = new URL(player.src);
    url.searchParams.set("enablejsapi", "1");
    player.src = url.href;
    youtubeAPIReady.then(function() {
        window[player.dataset.assign] = getYouTubePlayer(player);
    });
}
function getYouTubePlayer(element) {
    return new YT.Player(element, {
        events: {
            onReady: onPlayerReady,
            onStateChange: onPlayerStateChange
        }
    });
    function onPlayerReady(event) {
        event.target.playVideo();
    }
    var done = false;
    function onPlayerStateChange(event) {
        if (event.data === YT.PlayerState.PLAYING && !done) {
            done = true;
        }
    }
}
</script>
</body>
</html>
 | 
| Часовой пояс GMT +3, время: 17:16. |