通过模板函数嵌入YouTube视频会引发iFrame跨域策略错误

时间:2013-03-12 作者:IntricatePixels

我正在使用Wordpress 3.5,它本机支持嵌入许多网站的帖子和页面,包括YouTube。

当我将Youtube视频直接嵌入帖子或页面时(只需复制和粘贴视频url),效果很好,Chrome或Firefox中不会出现跨域策略错误。

然而,当我从自定义页面模板(在主循环之外)中的函数添加URL时,它抛出了一个错误,该模板是我为自定义帖子类型构建的。

Here is what my function looks like:

function my_tour_video()
{
    global $post,
           $wp_embed; 

    $my_tour_video = get_post_meta($post->ID, "_my_tour_video", true);  
    echo $wp_embed->run_shortcode(\'[embed]\' . $my_tour_video . \'[/embed]\');
}
在我的自定义字段中,我尝试了“嵌入”youtube url,也尝试了从浏览器复制和粘贴的“观看”url。

您可以尝试以下示例url:http://www.youtube.com/embed/Y7AvqD2loX4

Error in Chrome looks something like:

不安全的JavaScript尝试使用URL访问帧http://www.mydomain.com 来自具有URL的框架http://www.youtube.com/embed/Y7AvqD2loX4. 域、协议和端口必须匹配。

在这一点上,任何关于如何以正确方式做到这一点的建议都将非常有用。

1 个回复
SO网友:Otto

构建一个伪嵌入短代码,然后调用run\\u短代码来实现这一点是没有意义的。请尝试以下操作:

echo $wp_embed->shortcode(array(), $my_tour_video);
编辑:此外,当我在测试页面上使用您的代码时,使用该嵌入,我不会得到您描述的错误。如果您能够提出一个可复制的测试用例,那么它可能是可以解决的。

如果您使用的是/嵌入/URL,则可能会导致此问题。使用视频的真实URL,就像你在YouTube视频页面上看到的那样。与您通常粘贴到帖子内容中的URL相同。

结束

相关推荐

WordPress嵌入代码中的YouTube参数?

好的,所以我想嵌入youtube视频,但也要删除恼人的注释。以下代码非常适合嵌入视频[embed width=\"599\" height=\"360\"]youtube.com/watch?v=mNf0v2WkV0U [/embed] 但无论我做什么,我都不能添加以下参数:iv_load_policy=3 我不确定是否有可能在wordpress嵌入代码中添加这个?然后我发现了一些有趣的东西:$(\'object\').each(function(){ var $pa