【发布时间】:2015-12-11 20:14:14
【问题描述】:
我设计了一个包含我的 youtube 视频的页面。当您单击标题时,嵌入的视频会在右侧分区发生变化。但问题是 url,我希望用户分享他们想要的视频。如果他们按下后退按钮,他们可以回到上一个视频。我知道我们可以通过 html 5 history api 获得所有这些,但我对此并不陌生,经过我的努力,我无法解决这些问题。请帮忙。
以下是代码:
Youtube 视频页面
<style type="text/css">
body{
margin: 0px;
}
#leftdiv{
background-color: #A9F5D0;
float: left;
height:100%;
width: 30%;
}
#rightdiv{
background-color: #F8E0F1;
float: left;
height: 100%;
width: 70%;
}
#lectname{
padding:10px;
font-family: "comic sans ms";
}
</style>
<div id="container">
<div id="leftdiv">
<div id="lectname">
<p id="lectname1">Lec 01: What is Signal?</p>
<p id="lectname2">Lec 02: What is an Analog Signal?</p>
<p id="lectname3">Lec 03: What is Digital Signal?</p>
<p id="lectname4">Lec 04: Need of Digital Signal</p>
<p id="lectname5">Lec 05: Introduction to Digital Electronics</p>
<p id="lectname6">Lec 06: Switch and Bits Intuition</p>
</div>
</div>
<div id="rightdiv">
<iframe width="480" height="270" src="https://www.youtube.com/embed/M0mx8S05v60" frameborder="0" allowfullscreen></iframe>
</div>
</div>
<script type="text/javascript">
var lectureVideos = {
lectname1: "https://www.youtube.com/embed/M0mx8S05v60",
lectname2: "https://www.youtube.com/embed/F5h3z8p9dPg",
lectname3: "https://www.youtube.com/embed/jRL9ag3riJY",
lectname4: "https://www.youtube.com/embed/izBaDRyqnBk",
lectname5: "https://www.youtube.com/embed/2xXErGeeb_Q",
lectname6: "https://www.youtube.com/embed/RF9I6UzI4Rc"
}
var videoLinks = document.getElementsByClassName("videoLink");
for(var i=0; i<videoLinks.length; i++){
videoLinks[i].onclick=function(){
document.getElementById("videoFrame").src=lectureVideos[this.id];
}
}
</script>
【问题讨论】:
-
您可以使用sammy js
-
您是否希望浏览器中的 URL 是实际 youtube 视频的 URL,但不希望显示的页面实际上是那个?或者您希望 URL 类似于:“mysite.com/lecture2”,在您的页面中显示视频?
-
所以你使用 pushState 和 popState
-
@AdamJ.R.Erickson 我不希望它成为 youtube 的网址。我希望它像:“mysite.com/lecture2”
-
通常的方法是使用框架(角度、余烬等)并定义路线。但是,如果您以前没有这样做过,那么在您的情况下,这是一个很大的飞跃。我没用过这个,但你可以试试这样的库:stoodder.github.io/finchjs
标签: javascript html history.js html5-history