【发布时间】:2016-09-25 18:54:10
【问题描述】:
这是我的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>
如果我第一次调用它,视频就会开始,但如果我改变路线然后回来,它就不再起作用了,直到我按下 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>
垫片:
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/r29/html5.min.js">
</script>
<![endif]-->
页眉和页脚只是链接的集合,这里不重要。
我正在使用 Win7 Home Premium 和 firefox。
【问题讨论】:
-
无法在 chrome、IE 或 Firefox 中重现该效果。您使用的是什么浏览器?操作系统?你能显示页面的整个代码(如果这不是全部)吗?
-
好的,我现在更新了我的帖子。
-
好的,我刚刚意识到我可以通过删除 来解决这个问题,但这并不是一个很好的解决方案从那时起(例如)我所有的下拉菜单都不再起作用了。我可以在不破坏其余部分的情况下以某种方式更改这条线吗?
标签: javascript youtube-api ruby-on-rails-5