将 Flash youtube 更改为嵌入对象

Posted

技术标签:

【中文标题】将 Flash youtube 更改为嵌入对象【英文标题】:change flash youtube to embeded object 【发布时间】:2017-04-26 12:52:07 【问题描述】:

我正在为我的 youtube 预告片使用延迟加载,但是我注意到它在移动设备上不起作用我认为这是因为它的 flash 不是对象?

这个函数床可以改成嵌入对象吗?

  $('a.youtube-video').click(function(e) 
    e.preventDefault();
    var videoId = $(this).attr('data-video');
    var params =  allowScriptAccess: "always", allowFullScreen: "true" ;
    var atts =  id: 'player_'+videoId ;
    $(this).hide();
    swfobject.embedSWF(
        "http://www.youtube.com/v/"+videoId+"?enablejsapi=1&playerapiid=ytplayer&version=3", 
        'placeholder_'+videoId, "100%", "315", "8", null, null, params, atts);

);

任何帮助都会很棒...

这是完整的代码:

<script>$(document).ready(function() 
$('a.youtube-video').each(function() 
    var videoId = $(this).attr('data-video');
    var videoThumbnail = "http://img.youtube.com/vi/" + videoId + "/0.jpg";
    var videoBackground = $('<span class="youtube-thumbnail"></span>');
    videoBackground.css(
        background:"#fff url('"+videoThumbnail+"') no-repeat",          
backgroundSize: 'cover'

    );

    // also set the parent container size to prevent flicker
    $(this).add($(this).parent()).css(
        height:315,
        width:"100%",
        position:"relative",
        display:"block",
        textAlign:"center",
        color:"#fff",
        fontSize:26


    );
    $(this).text('Click to load video');
    $(this).append(videoBackground);
);

$('a.youtube-video').click(function(e) 
    e.preventDefault();
    var videoId = $(this).attr('data-video');
    var params =  allowScriptAccess: "always", allowFullScreen: "true" ;
    var atts =  id: 'player_'+videoId ;
    $(this).hide();
    swfobject.embedSWF(
        "http://www.youtube.com/v/"+videoId+"?enablejsapi=1&playerapiid=ytplayer&version=3", 
        'placeholder_'+videoId, "100%", "315", "8", null, null, params, atts);

);

);

【问题讨论】:

【参考方案1】:
$('a.youtube-video').click(function(e) 
    e.preventDefault();
    var videoId = $(this).attr('data-video');
    $("#player_" + videoId).html('<iframe   src="https://www.youtube.com/embed/' + videoId + '" frameborder="0" allowfullscreen></iframe>');
);

【讨论】:

嗯,看起来它应该可以工作,但它没有做任何事情?我需要在我想要视频的地方制作一个 iframe 吗? 不,只需添加一个具有相应 id 的空 div 或即时创建它。 不确定为什么这不起作用...这是 div "; 啊,刚刚发现了div被称为占位符的问题_

以上是关于将 Flash youtube 更改为嵌入对象的主要内容,如果未能解决你的问题,请参考以下文章

将任意 Flash 对象 wmode 更改为透明

如何将 YouTube 嵌入视频设为整页宽度?

Youtube iframe 嵌入:强制 Flash?

从youtube嵌入缩略图和视频(php - Wordpress)

如何循环嵌入的 YouTube 视频?

YouTube嵌入式播放器获取如何停止视频?