Javascript 我在使用“时出现此错误”;iframe嵌入的YouTube播放器API参考;
这是我得到的信息: 与位于的跨站点资源关联的cookie设置时没有Javascript 我在使用“时出现此错误”;iframe嵌入的YouTube播放器API参考;,javascript,jquery,youtube-api,Javascript,Jquery,Youtube Api,这是我得到的信息: 与位于的跨站点资源关联的cookie设置时没有SameSite属性。如果Chrome的未来版本设置为SameSite=None和Secure,则只能提供带有跨站点请求的cookie。您可以在应用程序>存储>cookies下查看开发人员工具中的cookies,并在和中查看更多详细信息 这是我使用的代码 <div id="youtubevideo" data-video-url="{{youtubevideourl}}"></div> <script
SameSite
属性。如果Chrome的未来版本设置为SameSite=None
和Secure
,则只能提供带有跨站点请求的cookie。您可以在应用程序>存储>cookies下查看开发人员工具中的cookies,并在和中查看更多详细信息
这是我使用的代码
<div id="youtubevideo" data-video-url="{{youtubevideourl}}"></div>
<script>
$('[data-video-url]').each(function () {
var $self = $(this);
try {
get_video_thumb($self.data('video-url'), function (image) { if (image !=
null) { $self.css('background-image', 'url(' + image.url + ')');
$self.append('<iframe id="FeaturedVideo" class="mdl-cell--hide"
width="100%" height="100%" />'); } });
} catch (e) { }
});
$('[data-video-url]').click(function () {
player = new YT.Player('youtubevideo', {
height: '480',
width: '100%',
videoId: getYoutubeVideoId($(this).data('video-url')),
events: {
'onReady': onPlayerReady
}
});
function onPlayerReady(event) {
event.target.playVideo();
}
});
function get_video_thumb(url, callback) {
var id = get_video_id(url);
if (id['type'] == 'y') { return processYouTube(id);
} else if (id['type'] == 'v') {
$.ajax({
url: 'http://vimeo.com/api/v2/video/' + id['id'] + '.json',
dataType: 'jsonp',
success: function (data) {
callback({ type: 'v', id: id['id'], url: data[0].thumbnail_large });
}
});
}
function processYouTube(id) {
if (!id) { throw new Error('Unsupported YouTube URL');}
callback({ type: 'y', id: id['id'], url: 'https://i2.ytimg.com/vi/' +
id['id'] + '/hqdefault.jpg' });
}}
function getYoutubeVideoId(url) {
if (url.indexOf('youtube.com') > -1) {
if (url.indexOf('v=') > -1) {id = url.split('v=')[1].split('&')[0]; }
else if (url.indexOf('embed') > -1) { id = url.split('embed/')
[1].split('?')[0]; };
return id;
}}
function get_video_id(url) {
var id;
var a;
if (url.indexOf('youtube.com') > -1) {
if (url.indexOf('v=') > -1) {id = url.split('v=')[1].split('&')[0];}
else if (url.indexOf('embed') > -1) { id = url.split('embed/')[1].split('?')[0];};
return processYouTube(id);
}
else if (url.indexOf('youtu.be') > -1) {id = url.split(/v\/|v=|youtu\.be\//)[1].split(/[?&]/)[0];return processYouTube(id);}
else if (url.indexOf('vimeo.com') > -1) { if (url.match(/https?:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/)) { id = url.split('/')[3];}
else if (url.match(/^vimeo.com\/channels\/[\d\w]+#[0-9]+/)) {id = url.split('#')[1];}
else if (url.match(/vimeo.com\/groups\/[\d\w]+\/videos\/[0-9]+/)) { id = url.split('/')[4];}
else if (url.match(/player.vimeo.com\/video\/[0-9]+/)) {id = url.split('/')[2];}
else { throw new Error('Unsupported Vimeo URL');}
}
else {throw new Error('Unrecognised URL');}
a = { type: 'v', id: id };
return a;
function processYouTube(id) {
if (!id) { throw new Error('Unsupported YouTube URL');}
a = { type: 'y', id: id };
return (a); // default.jpg OR hqdefault.jpg
}}
</script>
$(“[data video url]”)。每个(函数(){
var$self=$(本);
试一试{
get_video_thumb($self.data('video-url'),函数(image){if(image!=
null){$self.css('background-image','url('+image.url+'));
$self.append(“”);});
}捕获(e){}
});
$(“[data video url]”)。单击(函数(){
player=新的YT.player('youtubevideo'{
高度:'480',
宽度:“100%”,
videoId:getYoutubeVideoId($(this).data('video-url'),
活动:{
“onReady”:onPlayerReady
}
});
函数onPlayerReady(事件){
event.target.playVideo();
}
});
函数get\u video\u thumb(url,回调){
var id=获取视频id(url);
if(id['type']='y'){returnprocessyoutube(id);
}如果(id['type']='v'){
$.ajax({
网址:'http://vimeo.com/api/v2/video/“+id['id']+'.json”,
数据类型:“jsonp”,
成功:功能(数据){
回调({type:'v',id:id['id'],url:data[0].thumbnail\u large});
}
});
}
函数(id){
如果(!id){抛出新错误('Unsupported YouTube URL');}
回调({type:'y',id:id['id'],url:'https://i2.ytimg.com/vi/' +
id['id']+'/hqdefault.jpg'});
}}
函数getYoutubeVideoId(url){
如果(url.indexOf('youtube.com')>-1){
如果(url.indexOf('v=')>-1){id=url.split('v='))[1].split('&')[0];}
else如果(url.indexOf('embed')>-1){id=url.split('embed/'))
[1] .split(“?”)[0];};
返回id;
}}
函数获取视频id(url){
变量id;
var a;
如果(url.indexOf('youtube.com')>-1){
如果(url.indexOf('v=')>-1){id=url.split('v='))[1].split('&')[0];}
如果(url.indexOf('embed')>-1){id=url.split('embed/')[1].split('?')[0];};
返回进程(id);
}
else if(url.indexOf('youtu.be')>-1{id=url.split(/v\/| v=|youtu\.be\/)[1]。split(/[?&]/)[0];返回进程youtube(id);]
else if(url.indexOf('vimeo.com')>-1){if(url.match(/https?:\/\/(www\)?vimeo.com\/(\d+)($|\/)/){id=url.split('/')[3];}
else if(url.match(/^vimeo.com\/channels\/[\d\w]+#[0-9]+/){id=url.split('#')[1]}
else if(url.match(/vimeo.com\/groups\/[\d\w]+\/videos\/[0-9]+/){id=url.split('/')[4];}
else if(url.match(/player.vimeo.com\/video\/[0-9]+/){id=url.split('/')[2];}
else{抛出新错误('Unsupported Vimeo URL');}
}
else{抛出新错误('无法识别的URL');}
a={type:'v',id:id};
返回a;
函数(id){
如果(!id){抛出新错误('Unsupported YouTube URL');}
a={type'y',id:id};
返回(a);//default.jpg或hqdefault.jpg
}}
您收到的消息显示,新的cookie限制尚未应用到您的浏览器中。您还可以在不影响任何功能的情况下为旧cookie获取这些消息。您能否分享更多信息,如代码片段或演示错误的页面,以帮助理解您正在尝试执行的操作?我更新了我使用的代码。请您检查并让我知道我遗漏的任何内容。这些信息仍然只是代码片段,不足以重现。一切都正常吗?不过,您看到的cookie消息目前并未影响行为。