2014-01-13 21 views
0

我已经得到了这段代码,它在Html代码的div上添加了YouTube频道($ _POST)的视频(和视频信息),并且我想在Youtube中播放视频播放器后点击一个元素:Youtube API loadVideoByUrl()函数

var args= "url="+urlchaine; 
    xhr_object.open("POST", "traitement.php", true); 
    xhr_object.onreadystatechange = function() { 
    if(xhr_object.readyState == 4) { 
      eval(xhr_object.responseText); 
     } 
     return xhr_object.readyState; 
} 
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xhr_object.send(args); 

traitement.php:

<?php 
if (isset($_POST["url"]) && !empty($_POST["url"])) 
$urlchaine = $_POST["url"]; 
else 
$urlchaine = null; 

$stringresult = str_replace("http://www.youtube.com/user/", "",$urlchaine); 

require_once "Zend/Loader.php"; 
Zend_Loader::loadClass('Zend_Gdata_YouTube'); 
$yt = new Zend_Gdata_YouTube(); 
$videoFeed = $yt->getVideoFeed('http://gdata.youtube.com/feeds/users/...'); 

if ($stringresult != null){ 
    echo "var mydiv = document.getElementById('vids');"; 
    echo "var newcontent = document.createElement('div');"; 

    foreach ($videoFeed as $v): $thumbs = $v->getVideoThumbnails(); 
echo "newcontent.innerHTML = '...'"; 
echo "mydiv.appendChild(newcontent.firstChild);"; 
    endforeach; 
    echo "img_videos.addEventListener('click',function() { 
    $('#ytplayer_footer').fadeIn('normal'); 
    var idvideo = this.getAttribute('idvideo'); 
    var ytplayer = document.getElementById('ytplayer'); 

    ytplayer.loadVideoByUrl('...'); // ****** Here the problem 

    ytplayer.playVideo(); 
    },false);"; 
?> 

而且我有这样的错误:对象#有没有方法 'loadVideoByUrl' 什么是错在我的代码?

回答

0

您可能会在此处引用一些引用转义问题。看看这一行:

var ytplayer = document.getElementById("ytplayer"); 

您使用双引号,但是你的“回声”声明还使用双引号。切换到单引号,看看会发生什么。我有点惊讶这个代码运行。

(貌似这个问题是改变)

看出来的另一件事是,你似乎没有在任何地方加载YouTube的JS。您正在加载运行服务器端的PHP客户端库,但您还需要加载JavaScript库客户端 - 否则,您只需在vanilla DOM对象上调用“loadVideoByUrl()”。

+0

您是否改变了这个问题? –

+0

错误的复制/粘贴,对不起,我编辑了代码。 – user3185672

+0

我该怎么做?我试图在loadVideoByUrl调用之前调用onTubePlayerReady()函数,但它不会改变任何内容。 – user3185672