如何使用JQuery停止Vimeo视频

问题描述 投票:33回答:9

当我隐藏YouTube视频时,它会停止播放。但是,Vimeo视频不是这种情况。还有另一种方法可以阻止Vimeo视频吗?

javascript jquery vimeo
9个回答
53
投票

首先,为您的iFrame添加ID。然后将其添加到您的javascript关闭窗口单击功能:

var $frame = $('iframe#yourIframeId');

// saves the current iframe source
var vidsrc = $frame.attr('src');

// sets the source to nothing, stopping the video
$frame.attr('src',''); 

// sets it back to the correct link so that it reloads immediately on the next window open
$frame.attr('src', vidsrc);

11
投票

Vimeo有a JavaScript API,允许您访问和调用视频播放器上的许多属性和方法(包括暂停视频并完全卸载它)。他们还有一个API Playground和一些examples on GitHub

[编辑]

既然你提到你使用通用嵌入代码,这里有一些来自网站的警告:

使用Universal Embed Code,与玩家互动的唯一方法是使用window.postMessage。 postMessage是一个相对较新的开发,因此它可以在以下浏览器中使用:Internet Explorer 8 +,Firefox 3 +,Safari 4 +,Chrome和Opera 9+。

由于postMessage涉及复杂性,我们编写了一个JS迷你库,为您完成所有艰苦的工作!你可以在downloads page找到它,或者你可以看到一些例子below


6
投票

恢复SRC属性在清除之前使用以下内容:

var source = $('iframe#yourVideoId').attr('src');

下一个SRC属性清除:

$('iframe#yourVideoId').attr('src','');

回调之前的SRC属性:

$('iframe#yourVideoId').attr('src',source);

4
投票
    var vidUrl = $("iframe#video-frame").attr('src');


    //Basically stops and starts the video on modal open/close
    $('#video').on('hidden.bs.modal', function (e) {
        $("iframe#video-frame").attr('src','');
    });

    $('#video').on('show.bs.modal', function (e) {
        $("iframe#video-frame").attr('src', vidUrl);
    })

3
投票

David的另一个答案是......你可以使用jQuery来清除iFrame的SRC属性。

$('iframe#targetID').attr('src','');

我正在使用Vimeo视频和灯箱效果。再次触发灯箱时,我会在显示之前将视频网址添加回iFrame SRC。


1
投票

尝试使用vimeo播放器API:http://developer.vimeo.com/player/js-api#methods

请记得打开API。例如:http://player.vimeo.com/video/VIDEO_ID?api=1


1
投票

我最近需要在模态关闭时暂停一个Bootstrap模式内的Vimeo视频。

Vimeo视频嵌入在iframe中。

这对我有用:

$("#my-bootstrap-modal").on('hidden.bs.modal', function (e) {
    var div = document.getElementById("my-bootstrap-modal");
    var iframe = div.getElementsByTagName("iframe")[0].contentWindow;
    iframe.postMessage('{"method":"pause"}', '*');
});

0
投票

使用Vimeo javascript API可以完成

player.unload()

https://github.com/vimeo/player.js#unload-promisevoid-error


-1
投票

我使用jQuery从DOM中删除iframe。

© www.soinside.com 2019 - 2024. All rights reserved.