Click Loads multiple videos using YOUTUBE Iframe
I have some thumbnails below the main video contain开发者_JAVA百科er. I will like when you click on each thumbnail - the associated video loads and start playing Using the NEW YOUTUBE API IFRAME approach here
Your help or direction will be appreciated
PREVIEW ON JSFIDDLE HERE
PREVIEW LINK UPDATED***
See this fiddle: http://jsfiddle.net/Y9j7R/5/
Run this code on load:
var a = document.getElementsByTagName("a"); //1
for(var i=0; i<a.length; i++){ //2
if(!/#ytplayer/.test(a[i].href)) continue; //3
var link = a[i].innerHTML.match(/\/vi\/([^\/]+)/); //4
if(link) (function(vidId){ //5
a[i].onclick = function(){ //6
player.loadVideoById(vidId); //7
} //8
})(link[1]); //9
}
Detailed explanation of the code
- Select all
<a>
(anchor) elements in the document - Loop through these anchors using
for
. During each iteration, the "current" anchor is referred througha[i]
. - Check whether the
href
attribute does not (!
) contain "#ytplayer
" using thetest
method of the Regular Expression. If this condition is true (ie: thehref
attribute does not contain "#ytplayer
"), thecontinue
statement terminates the current iteration, and jumps to the next anchor. - The
innerHTML
property of the current anchor is requested. Thematch
method is used to get the video id. The Regular expression/\/vi\/([^\/]+)/
means: match a substring which equals/vi/<any consecutive non-slash chars>
, and group<any consecutive non-slash chars>
.
When such a substring is found, thelink
variable has a property1
(one), which holds the value of this group. Otherwise,link
equalsnull
. - If the
link
variable is notnull
, an anonymousfunction
is created (lines 5-9) and executed (line 9). The first argument of the function will be referenced throughvidId
(variable). - Assigns a newly created
function
to theonclick
property of the current anchor. Assigning a function to theonclick
property will cause theonclick
event handler to be defined. - Invokes the
loadVideoById
method of theplayer
object (as defined by the YouTube javascript API). - Invokes the function (created at lines 5-9), passing
link[1]
as a first parameter.
References
for
loops and thecontinue
statement- Creating and calling
functions
in JavaScript - Regular Expressions (RegExp).
test
method of theRegExp
object- The
match
function in conjunction with a Regular expression - The
innerHTML
property of an element - The
onclick
event handler - The
loadVideoById
method of the YouTube JavaScript API
Another interesting answer
- YouTube iframe API: how do I control a iframe player that's already in the HTML?
精彩评论