Javascript 使用Jquery停止Vimeo视频

Javascript 使用Jquery停止Vimeo视频,javascript,jquery,vimeo,Javascript,Jquery,Vimeo,我需要停止嵌入新oembed api(universal player)的Vimeo视频,但当我尝试添加事件时,会出现以下错误: Uncaught TypeError: Object #<an HTMLIFrameElement> has no method 'addEvent' 未捕获类型错误:对象#您不能 没有DOMaddEvent方法 您没有对Vimeo的跨域访问权限,所以不允许您使用带有iframe文档或抽象视图的JavaScript接口 如果您想通过JavaScrip

我需要停止嵌入新oembed api(universal player)的Vimeo视频,但当我尝试添加事件时,会出现以下错误:

Uncaught TypeError: Object #<an HTMLIFrameElement> has no method 'addEvent'
未捕获类型错误:对象#

您不能

  • 没有DOM
    addEvent
    方法
  • 您没有对Vimeo的跨域访问权限,所以不允许您使用带有iframe文档或抽象视图的JavaScript接口

如果您想通过JavaScript与Vimeo交互,您必须让他们实现一个也接受您的域的
postMessage
API。

Eli,请编辑您的帖子。正如乔所说,你的信息有一部分是错误的。虽然跨域通信需要postMessage,但它是通过调用“Froogaloop.init();”添加的DOM方法实现的

注意:您需要从Vimeo站点获取froogaloop.js(或min变体)


请确保在调用init()之前设置了iFrame“src”,否则froogaloop将不起任何作用。

根据Mike的建议,调用:

Froogaloop.init();
使控件API正常工作。就我而言:

<iframe id="player_1" src="http://player.vimeo.com/video/26859570?js_api=1&amp;js_swf_id=player_1&amp;title=0&amp;byline=0&amp;portrait=0" width="620" height="354" frameborder="0"></iframe>
<script>
    $(document).ready(function() {
        Froogaloop.init();
        $("#player_1").moogaloop({
            load: function(element) {
                $("#segment1").click(function() { element.moogaloop('seekTo', "7"); });
            }
        });
    });
</script>

$(文档).ready(函数(){
Froogaloop.init();
$(“#player_1”).moogaloop({
加载:函数(元素){
$(“#分段1”)。单击(function(){element.moogaloop('seekTo',“7”);});
}
});
});
奇怪的。。。Moogaloop的author演示页面在没有init()调用的情况下可以正常工作。不管怎样,他为我工作


谢谢你的时间

这不是正确的答案,但可能对你的情况有效,就像对我的情况一样。当我关闭包含DOM元素的Vimeo时,我只是想阻止它播放。我正在折叠它的容器,这在视觉上隐藏了它,但是音频继续播放,不必要地使用了浏览器资源

我现在所做的只是将iframe存储在一个变量中,从DOM中删除它,然后立即替换它。我没有跨浏览器测试,只有最新版本的Chrome和Safari Mobile

var container = $("#VimeoContainer");
var iframe = container.find("iframe");
iframe.remove();
container.append(iframe);

再说一次,Froogaloop确实是一条路要走,但是我在过去遇到过一些问题,所以对于这种情况,我想找一些简单的方法。显然,没有JQuery,你也可以用同样的结果来实现这一点。

啊,好的:(我认为它是有效的,因为我在这里读到了它:(和这里)不过,谢谢你的回答:)既然可以,你为什么要说“你不能”呢。这完全是误导。
var container = $("#VimeoContainer");
var iframe = container.find("iframe");
iframe.remove();
container.append(iframe);