最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How can I redirect to home page after video stops - Stack Overflow

programmeradmin3浏览0评论

I am using Cincopa to embed my video into my website. The page that it is embedded in is hidden and navigation is removed. So I would like everyone to be redirected to the home page once the video is finished.

Here is my code:

<div id="cp_widget_55a42f1b-6e51-4738-87f9-eaf52dc6a826">...</div>
<script type="text/javascript">
    var cpo = [];
    cpo["_object"] = "cp_widget_55a42f1b-6e51-4738-87f9-eaf52dc6a826";
    cpo["_fid"] = "AsBAj2M3MQOr";
    var _cpmp = _cpmp || [];
    _cpmp.push(cpo);
    (function() {
        var cp = document.createElement("script");
        cp.type = "text/javascript";
        cp.async = true;
        cp.src = "//www.cincopa/media-platform/runtime/libasync.js";
        var c = document.getElementsByTagName("script")[0];
        c.parentNode.insertBefore(cp, c);
    })();
</script>
<noscript>Powered by Cincopa <a href=''>Video Hosting for Business</a> solution.<span>Test</span><span>bitrate</span><span> 39961 kb/s</span><span>height</span><span> 1080</span><span>duration</span><span> 00:02:35.31</span><span>lat</span>:<span> +33.2269</span><span>long</span>:<span> 21-96.93</span><span>fps</span><span> 59.94</span><span>width</span><span> 1920</span><span>originaldate</span><span> 2015-06-06 19:08:58</span>
</noscript>

I am using Cincopa to embed my video into my website. The page that it is embedded in is hidden and navigation is removed. So I would like everyone to be redirected to the home page once the video is finished.

Here is my code:

<div id="cp_widget_55a42f1b-6e51-4738-87f9-eaf52dc6a826">...</div>
<script type="text/javascript">
    var cpo = [];
    cpo["_object"] = "cp_widget_55a42f1b-6e51-4738-87f9-eaf52dc6a826";
    cpo["_fid"] = "AsBAj2M3MQOr";
    var _cpmp = _cpmp || [];
    _cpmp.push(cpo);
    (function() {
        var cp = document.createElement("script");
        cp.type = "text/javascript";
        cp.async = true;
        cp.src = "//www.cincopa./media-platform/runtime/libasync.js";
        var c = document.getElementsByTagName("script")[0];
        c.parentNode.insertBefore(cp, c);
    })();
</script>
<noscript>Powered by Cincopa <a href='http://www.cincopa./video-hosting'>Video Hosting for Business</a> solution.<span>Test</span><span>bitrate</span><span> 39961 kb/s</span><span>height</span><span> 1080</span><span>duration</span><span> 00:02:35.31</span><span>lat</span>:<span> +33.2269</span><span>long</span>:<span> 21-96.93</span><span>fps</span><span> 59.94</span><span>width</span><span> 1920</span><span>originaldate</span><span> 2015-06-06 19:08:58</span>
</noscript>
Share Improve this question edited Aug 13, 2015 at 20:55 Tripp Kinetics 5,4592 gold badges24 silver badges40 bronze badges asked Aug 13, 2015 at 20:50 Christopher MooreChristopher Moore 993 bronze badges 3
  • Hey @Christopher Moore did you have any luck with this? – Asad Malik Commented Aug 8, 2017 at 16:44
  • "This question has not received enough attention." because it already has many possible duplicates: How can I redirect to a URL after a HTML video has ended? and Redirect html5 video after play – Abhishek Pandey Commented Aug 11, 2017 at 8:41
  • any Plunker ? just paste the whole code there – Neji Soltani Commented Aug 15, 2017 at 12:22
Add a ment  | 

4 Answers 4

Reset to default 8

Cincopa embeds a video HTML tag, you have to add an event as explained here

Well, right now I'm not quite in the mood to make a plete test, so I'll just suggest a workaround which you will need to adapt.

In order to give you the exact code, I need to know:

  1. What CMS are you using?
  2. Can you add an id or a class to your video tag with cincopa?
  3. Are you including jQuery?

Then you'll have to add this lines in the bottom of your script:

//Wait until the page is entirely loaded, and so you can access the rendered video tag (you'll need jQuery)
$( document ).ready(function() {
    
    function goHomeYouAreDrunk(e) {
        window.location.href = "http://url.to.your.home.page";
    }
    //I'm supposing that your video is the sole video tag in your page, if it's not, you'll have to get it by its id or class
    document.find('video').addEventListener('ended',goHomeYouArDrunk,false);
});

Normally, that would be via an event listener on the <audio> or <video> element.

How to add Event Listeners | W3Schools : https://www.w3schools./Jsref/met_element_addeventlistener.asp

But a way I'd do it with Javascript just to be sure is:

// The interval clocks every .1 second(s).
setInterval(function() {
    // If the element's current playback time is the playback duration (has reached the end).
    if (audioElement.currentTime == audioElement.duration)
        doSomething()
}, 100)

Although if you are wary about performance and don't want to use a setInterval() function, then stick with adding an event to the element.

By the way, to re-direct to another page, use the Javascript function location.assign("https://www.example..").

This code has been tested in https://www.cincopa./:

document.getElementById("video_iframe_id_in_your_page")
    .contentWindow
    .document.getElementsByTagName("video")[0]
    .addEventListener("ended", function(args){
        window.open("/", "_top");
    });

wish can help you.

You can redirect to the home page by setting window.location="/"

I'm not sure how you're checking if the video has ended, you can add a listener like this.

Upon pletion, you can call a handler function to redirect the user to the homepage.

document.getElementById('myVideo').addEventListener('ended',redirectToHomePage,false);

redirectToHomePage(){
   window.location = "/";
}
发布评论

评论列表(0)

  1. 暂无评论