使用Jquery停止Vimeovideo

我需要停止嵌入了新的oembed api(通用播放器)的Vimeovideo,但是当我尝试添加一个事件时,我收到此错误:

Uncaught TypeError: Object # has no method 'addEvent' 

但我不知道为什么我得到这个错误,我添加了jquery和frogaloop api,我也向iframes添加了id,但它仍然不起作用::(

完整代码在这里:

http://tv.bisaccia.info

你不能。

  • 没有DOM addEvent方法。
  • 您没有对Vimeo的跨域访问权限,因此不允许您使用iframe文档或抽象视图的JavaScript界面​​。

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

Eli,请编辑你的post。 正如乔所说,你被部分误导了。 虽然跨域通信需要postMessage,但它通过调用“Froogaloop.init();”添加的DOM方法实现的。

 is_embed_iframe = _this.iframe_pattern.test(cur_frame.getAttribute('src')); if (is_embed_iframe) { cur_frame.api = _that.api; cur_frame.get = _that.get; cur_frame.addEvent = _that.addEvent; } 

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

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

根据Mike的建议,调用:

 Froogaloop.init(); 

是否使控件API工作。 就我而言:

   

奇怪…… Moogaloop的作者演示页面没有init()调用的情况下工作。 无论如何,为我工作。

谢谢你的时间!

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

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

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

再一次,Froogaloop真的是要走的路,但是过去我遇到了问题,所以对于这种情况我一直在寻找简单的东西。 显然你可以在没有JQuery的情况下做到这一点,结果相同。