无法检测jQuery点击vimeo iframe

时间:2012-11-28 14:34:10

标签: javascript jquery video click vimeo

简单的Vimeo iframe点击不起作用:

$('iframe').click(function(){
    alert('ok');
});

我也试过了:

$('body').click(..
$(document).on('click','iframe',..

但是当用户在悬停时点击视频时,没有任何效果,只播放视频。

5 个答案:

答案 0 :(得分:6)

如果您在嵌入代码中包含查询参数api=1,则可以访问事件,包括用户在iframe中点击视频时触发的事件(播放,暂停)。您还可能希望包含他们的froogaloop.js文件,以便更轻松地访问这些事件。

<iframe id="player1" src="http://player.vimeo.com/video/27855315?api=1&player_id=player1" width="400" height="225"></iframe>

答案 1 :(得分:1)

它是iframe中的第三方域名,因same origin policy而无法执行此操作。

答案 2 :(得分:0)

试试这个:

$('iframe').contents()
           .find('[src*="vimeo.com"]')
           .click(
               function(){
                  alert('foo');
               }
            );

答案 3 :(得分:-1)

我发现在找到iframe内的任何内容之前,我需要确定iframe是否已加载。然后,如果iframe在页面加载后加载或稍后在过程中重新加载,则单击功能将起作用。

jQuery('#iframe').load(function() {
   jQuery('#iframe').contents().find('#play-button').click(function () {
        // do your stuff
    });
}

**这可能会或可能不会跨域工作,但确定iframe加载是否可以用作判断iframe中是否发生了某些事情的hackish方法。如果您在iframe顶部的域上创建了“播放”按钮,则可以在页面加载后通过点击功能加载iframe,然后您的加载功能可以包含幻灯片暂停。

答案 4 :(得分:-1)

很遗憾,由于相同的原始政策,您无法跟踪跨域iframe中的点击次数,正如epascarello之前所说的那样。

您可以设置用户点击的“缩略图”,这会弹出该弹出窗口,然后将缩略图替换为实际视频。只需嵌入您想要的视频,但将其保留为隐藏的div,然后在您希望它开始播放时使用.show()

Source