From f791821bb8fb571a931664cc7e7122cded193941 Mon Sep 17 00:00:00 2001 From: Jason Woofenden Date: Sat, 19 May 2012 16:45:51 -0400 Subject: [PATCH] youtube: refactor, handle embeds --- youtube-html5-hider/script.js | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/youtube-html5-hider/script.js b/youtube-html5-hider/script.js index 631f86d..d32c392 100644 --- a/youtube-html5-hider/script.js +++ b/youtube-html5-hider/script.js @@ -15,25 +15,28 @@ old.parentNode.removeChild(old); } - var iframes = document.getElementsByTagName('iframe'); - for (var i = iframes.length - 1; i >= 0; --i) { - var iframe = iframes[i]; - var match = iframe.src.match(/^http:\/\/www.youtube(-nocookie)?.com\/embed\/([^?]*)/) - if (match) { - var div = document.createElement('div'); - div.innerHTML = 'YouTube: ' + match[2] + ''; - replace(iframe, div); - } - } + var embed_types = [ + {tag: 'iframe', attr: 'src'}, + {tag: 'object', attr: 'data'}, + {tag: 'embed', attr: 'src'} + ]; + + var i; + for(i = 0; i < embed_types.length; ++i) { + var tag_type = embed_types[i].tag; + var attr = embed_types[i].attr - var objects = document.getElementsByTagName('object'); - for (var i = objects.length - 1; i >= 0; --i) { - var object = objects[i]; - var match = object.data.match(/^http:\/\/www.youtube(-nocookie)?.com\/(embed|v)\/([^?]*)/) - if (match) { - var div = document.createElement('div'); - div.innerHTML = 'YouTube: ' + match[3] + ''; - replace(object, div); + var tags = document.getElementsByTagName(tag_type); + for(var j = tags.length - 1; j >= 0; --j) { + var tag = tags[j]; + if(tag[attr]) { + var match = tag[attr].match(/^http:\/\/www.youtube(-nocookie)?.com\/(embed|v)\/([^?]*)/) + if(match) { + var div = document.createElement('div'); + div.innerHTML = 'YouTube: ' + match[3] + ''; + replace(tag, div); + } + } } } }()); -- 1.7.10.4