简单的Vimeo iframe点击不起作用:
$('iframe').click(function(){
alert('ok');
});
我也试过了:
$('body').click(..
$(document).on('click','iframe',..
但是当用户在悬停时点击视频时,没有任何效果,只播放视频。
答案 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()
。