有没有办法跟踪嵌入视频的播放次数?理想情况下,不需要使用链接的缩略图来启动embed / iframe代码。
示例(在jsFiddle上自行尝试):
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Example</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<div id="log"></div>
<ul>
<li class="video" id="video1"><iframe width="480" height="390" src="http://www.youtube.com/embed/z6lL83wl31E" frameborder="0" allowfullscreen></iframe><li>
<li class="video" id="video2"><iframe src="http://player.vimeo.com/video/28231570?title=0&byline=0&portrait=0" width="400" height="225" frameborder="0"></iframe></li>
<li class="video" id="video3"><embed flashVars="playerVars=autoPlay=no" src="http://www.metacafe.com/fplayer/3153323/the_three_stooges_minisode_beer_barrel_polecats_season_1_episode_0008.swf" width="440" height="248" wmode="transparent" allowFullScreen="true" allowScriptAccess="always" name="Metacafe_3153323" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed></li>
</ul>
<script>
/* Here's what I've tried so far: */
$('.video').mouseover(function(){
$('#log').html('Mouseover!');
/*alert('Track mouseovers instead? Is this the best I can do?');*/
});
$('.video').mouseout(function(){
$('#log').html(' ');
});
$('.video').mousedown(function(){
$('#log').html('Mousedown!');
alert('mousedown');
/* This will track mousedown events in embed objects (not iframes), but not allow the click event to pass through to object. */
});
</script>
</body>
</html>
如何跟踪每个视频的播放次数?
答案 0 :(得分:6)
要为youtube视频执行此操作,您可以查看文档here
要为vimeo视频执行此操作,您可以查看文档here
答案 1 :(得分:4)
这适用于Vimeo ...在“Play”事件上触发javascript警报,但还有许多其他事件,如“已完成”,“暂停”,“playProgress”(在播放视频时不断更新)... 。使用Jquery
$(document).ready( function () {
var f = $('iframe'),
url = f.attr('src').split('?')[0],
status = $('.status');
// Listen for messages from the player
if (window.addEventListener){
window.addEventListener('message', onMessageReceived, false);
}
else {
window.attachEvent('onmessage', onMessageReceived, false);
}
// Handle messages received from the player
function onMessageReceived(e) {
var data = JSON.parse(e.data);
switch (data.event) {
case 'ready':
onReady();
break;
case 'play':
onPlay();
break;
}
}
// Call the API when a button is pressed
$('button').on('click', function() {
post($(this).text().toLowerCase());
});
// Helper function for sending a message to the player
function post(action, value) {
var data = { method: action };
if (value) {
data.value = value;
}
f[0].contentWindow.postMessage(JSON.stringify(data), url);
}
function onReady() {
status.text('ready');
post('addEventListener', 'play');
}
function onPlay() {
alert("Dude done clicked 'Play'");
}
});