Youtube API 嵌入静音视频不执行 javascript - 为什么它在 jsfiddle 上工作而不在 html 文件中工作?

Youtube API embed muted video doesn't execute javascript - Why it work on jsfiddle and not in a html file?

我尝试在网站上嵌入 YouTube 视频并将其静音。

我已经找到这个主题了:How do you mute an embedded Youtube player?

所以我已经尝试了答案并且有效:https://jsfiddle.net/Jonathan_Ironman/BFDKS/9/

但是当我在 jsfiddle 之外尝试相同的代码时,javascipt 代码不再执行。

源代码

<html>
    <head>
        <script type="text/javascript">
            var tag = document.createElement('script');

            tag.src = "//www.youtube.com/iframe_api";
            var firstScriptTag = document.getElementsByTagName('script')[0];
            firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

            var player;

            function onYouTubeIframeAPIReady()
            {
                player = new YT.Player('ytplayer',
                {
                    events:
                    {
                        'onReady': onPlayerReady
                    }
                });
            }

            function onPlayerReady()
            {
                player.playVideo();
                // Mute!
                player.mute();
            }

        </script>

        <iframe id="ytplayer" type="text/html" style="position:absolute; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:0;" src="https://www.youtube-nocookie.com/embed/DjxwLr6TjHs?playlist=DjxwLr6TjHs&enablejsapi=1&border=0&start=60&autoplay=1&showinfo=0&controls=0&disablekb=1&cc_load_policy=1&iv_load_policy=3&rel=0&loop=1" frameborder="0"></iframe>
    </head>

    <body>
    </body>
</html>

有什么想法吗?

让你的第一行js看起来像这样(复制粘贴)

 tag.src = "http://www.youtube.com/iframe_api";

否则(local)会指向一个文件..

也许您只是添加一个控制台输出来检查 api 是否正确加载:)