2011-12-16 148 views
1

尝试更改/修改src包含youtube.com的页面上的任何/所有iframe的源,并从src url获取视频ID。更改iframe的src

这是我到目前为止没有工作。

$(document).ready(function(){ 
changeYoutube(); 
function changeYoutube() 
{ 
    $('iframe').each(function() { 

    var that = $(this); 
    var href = that.attr('src'); 

    if(href.search('youtube.com') != -1) {  
     that.attr('href', href+'&autoplay=1'); 
    } 

}); 
}); 

我还需要把来自url的视频ID变成一个变种。示例url: http://www.youtube.com/embed/hP9rBDYYFvw?fs=1&feature=oembed 其中“hP9rBDYYFvw”是该网址中的视频ID。

感谢

+0

假设页面上没有iframe有id的。 – TDave00 2011-12-16 07:02:19

+0

究竟是什么“不工作”?你是否收到JS错误?你尝试过调试吗? – 2011-12-16 07:20:05

回答

1

这是解决方案:

<script type="text/javascript"> 
    function changeYoutube() { 
     $('iframe').each(function() { 

      var that = $(this); 
      var href = that.attr('src'); 

      if (href.search('youtube.com') != -1) { 
       that.attr('src', href + '&autoplay=1'); 

       // code to get id 

        var tmp = href.split("?"); 
       var tmp2 = tmp[0].split("/"); 
       var ID = tmp2[tmp2.length - 1]; 
      } 

     }); 
    } 

    $(document).ready(function() { 
     changeYoutube(); 
    }); 
    </script> 

首先,你必须设置href属性,但你必须设置iframe的src属性。第二你必须首先定义你在文档准备好后调用的函数,并且在你的代码中你没有关闭函数。最好的祝福。

+0

这个技巧。有关视频ID问题第二部分的任何想法? – TDave00 2011-12-16 11:58:38

0

你缺少一个右括号}

替换最后一行});}});

0
$(document).ready(function(){ 
    changeYoutube(); 
}); 

function changeYoutube() { 
    $('iframe').each(function() { 
     if($(this).attr('src').search('youtube.com') != -1) { 
      var href = $(this).attr('src');  
      $(this).attr('src', href+'&autoplay=1'); 
     } 
    }); 
} 

它只是你的另一种风格。也许它的工作原理..试试