我一直在使用SublimeVideo,并且在我正在工作的网站上已经做了很多工作。
通过网站上的用户点击链接,我已经有15-20个视频可以成功通过网站上的SublimeVideo成功使用,单击后,该视频在SublimeVideo灯箱中打开并开始播放。
但是现在,我需要为这些视频创建“较短的URL”,这些URL可以在印刷出版物和电子邮件中发送出去,并且可以将用户带到网站进行查看,而不仅仅是视频文件。
理想情况下,我希望只在单页网址中使用带有标签的id / data-uid,并让选定的视频在灯箱内自动启动“ n”播放。这似乎是不可能的(?)。
我可以选择隐藏视频标签的单个页面,并取消隐藏标签并在URL中播放它。如果所有这些方法都不奏效,也许我会过时了,为每个视频制作一个页面,然后将其嵌入页面中。
无论如何,在搜索所有文档页面,其论坛和搜索网络之后,我只发现了两个选项-都没有实际起作用。我将它们粘贴在下面:
首先,这是我在所有视频中使用的HTML的示例:
<p class=""><a href="#video1" class="sublime" data-autoresize="fit">video1 text link on page</a></p>
<video id="video1" data-uid="video1" title="video1 description" poster="/assets/images/video1.jpg" width="1084" height="574" style="display:none" data-autoresize="fit" preload="none">
<source src="/assets/videos/video1.mp4" />
</video>
就其本身而言,效果很好!我不想改变那个。单击文本链接后,灯箱会打开,视频会完美播放。
因此,假设包含上述代码的15-20个视频的页面位于:
http://example.com/resources/index.php
我以为我可以为第一个视频创建该URL:
http://example.com/resources/index.php#video1
甚至更好
http://example.com/resources#video1
...并效仿其他所有视频ID。
为了使它起作用,我尝试了:
<script type="text/javascript">
sublimevideo.ready(function()
{
if (window.location.hash == '#video1') {
sublime('video1').play();
} else
if (window.location.hash == '#video2') {
sublime('video2').play();
} else
if (window.location.hash == '#video3') {
sublime('video3').play();
}
});
</script>
...那是行不通的。由于某种原因,它可以与页面上的第一个视频一起使用,但是我的意思是“工作”是取消隐藏并使其可以播放,而不是在灯箱中打开并自动播放。
因此,我在共享文档区域中找到了如下代码:
<script type="text/javascript">
var hashtag = "#video1";
var hashtag = "#video2";
var hashtag = "#video3";
if (document.location.hash == hashtag) {
showTheVideo(hashtag);
}
function showTheVideo(hashtag) {
}
</script>
...但是那也不行。
知道JavaScript的人可以帮我拼一下吗?
最佳答案
我将在这里为我解决该问题的代码寄予希望,希望它有一天能对可能会进行搜索和查找的其他人有所帮助。
通过将下面的代码放在页面的开头,在...的下面。
<script type="text/javascript" src="//cdn.sublimevideo.net/js/UniqueIDprovidedInYourAccountGoesHere.js"></script>
...库(SublimeVideo在您的帐户区域为您提供的随机字符/数字.js),我终于能够解决上述详细问题(可以!)。
因此,使用与上述相同的示例,此URL现在可以按我的需要运行(不仅将您带到资源页面,而且还通过在其灯箱中启动特定视频)。
http://example.com/resources.php#video=interview2
...并输入:
RewriteRule ^resources$ resources.php [L]
...在同一目录的.htaccess文件中,我可以使用户更加轻松:
http://example.com/resources#video=interview2
据我了解,下面的JavaScript附加功能找到哈希,然后查找“ video =“,然后取其后的内容,如果它在“ a”标签中找到匹配的“ id”,则告诉它通过在灯箱中启动该视频来实现SublimeVideo。辉煌!
<script type="text/javascript">
$(document).ready(function () {
var lochash = location.hash.substr(1);
var mylocation = lochash.substr(lochash.indexOf('video='))
.split('&')[0]
.split('=')[1];
sublime.ready(function () {
var lightbox = sublime.lightbox(mylocation);
lightbox.open();
});
});
</script>
这是HTML部分(供参考):
<p class=""><a href="#video2" id="interview2" class="sublime" data-autoresize="fit">video2 text link on page that i left as reference for the user in case they close the video that was launched from the publication</a></p>
<video id="video2" data-uid="video2" title="video2 description" poster="/assets/images/interview2.jpg" width="1084" height="574" style="display:none" data-autoresize="fit" preload="none">
<source src="/assets/videos/interview2.mp4" />
</video>
另请注意:通过反复试验,我发现URL中“#video =“之后的视频名称必须与“ A”标记中的“ ID”相同,而不是“ video”标记!因此,您会注意到两者之间的“ id =”是(并且必须)不同。相反,“视频”标签中的“ id =“与“ href =”相同。