Javascript Youtube iframe API在命中F5后首先触发

Javascript Youtube iframe API在命中F5后首先触发,javascript,youtube-api,ruby-on-rails-5,Javascript,Youtube Api,Ruby On Rails 5,这是我的html: <% provide(:title, "Test") %> <div id="player"></div> <script> var tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName('

这是我的html:

<% provide(:title, "Test") %>

<div id="player"></div>

<script>
  var tag = document.createElement('script');

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

  var player;
  function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
      height: '390',
      width: '640',
      videoId: 'dVVZaZ8yO6o',
      events: {
        'onReady': onPlayerReady
      }
    });
  }

  function onPlayerReady(event) {
    event.target.playVideo();
  }

</script>

var tag=document.createElement('script');
tag.src=”https://www.youtube.com/iframe_api";
var firstScriptTag=document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(标记,firstScriptTag);
var播放器;
函数onyoutubeiframeapiredy(){
player=新的YT.player('player'{
高度:“390”,
宽度:“640”,
videoId:'dVVZaZ8yO6o',
活动:{
“onReady”:onPlayerReady
}
});
}
函数onPlayerReady(事件){
event.target.playVideo();
}
如果我第一次打电话,视频就会开始,但如果我改变路线回来,它就不再工作,直到我按F5。在这之后,同样的问题是:如果路线被改变,它将在击打F5后首先工作。我试图检查本地和服务器的行为是否只是不一致,但事实并非如此

编辑:

上面的html位于的内部:

<!DOCTYPE html>
<html>
  <head>
    <title><%= full_title(yield(:title)) %></title>
    <%= csrf_meta_tags %>

    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
    <%= render "layouts/shim" %>
  </head>

  <body>
    <%= render "layouts/header" %>
    <div class="container">
      <div class="notifications">
        <% flash.each do |message_type, message| %>
          <div class="alert alert-<%= message_type%>"><%= message %></div>
        <% end %>
      </div>
      <%= yield %>
      <%= render "layouts/footer" %>
      <%= debug(params) if Rails.env.developement? %>
    </div>
  </body>
</html>

垫片:


页眉和页脚只是链接的集合,不要认为它在这里很重要


我正在使用Win7 Home Premium和firefox。

好的,问题解决了。显然,youtube API对turbolinks不太感兴趣。从assets/javascripts/application.js中删除这些内容后,一切又恢复正常。

好的,问题解决了。显然,youtube API对turbolinks不太感兴趣。从assets/javascripts/application.js中删除这些内容后,一切又恢复正常。

在chrome、IE或Firefox中无法重现这种效果。。你在用什么浏览器?操作系统?你能显示页面的全部代码吗(如果这不是全部的话)?当然,我现在已经更新了我的帖子。好的,我刚刚意识到我可以通过删除来解决这个问题,但这并不是一个很好的解决方案,从那以后(例如),我所有的下拉菜单都不再工作了。我能在不破坏其余部分的情况下改变这一行吗?不能在chrome、IE或Firefox中重现这种效果。。你在用什么浏览器?操作系统?你能显示页面的全部代码吗(如果这不是全部的话)?当然,我现在已经更新了我的帖子。好的,我刚刚意识到我可以通过删除来解决这个问题,但这并不是一个很好的解决方案,从那以后(例如),我所有的下拉菜单都不再工作了。我能在不破坏其他线路的情况下改变这条线路吗?
<!--[if lt IE 9]>
    <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/r29/html5.min.js">
    </script>
<![endif]-->