From 602169240fd7a7d747d9bb283abc88b7fa6b40e2 Mon Sep 17 00:00:00 2001 From: Heath Naylor Date: Fri, 17 Apr 2015 16:18:18 -0600 Subject: [PATCH 1/2] Properly clean up DOM and variables when destroying --- src/ytv.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/ytv.js b/src/ytv.js index cebacc9..288acd5 100644 --- a/src/ytv.js +++ b/src/ytv.js @@ -137,6 +137,7 @@ youtube: function(fn){ var tag = doc.createElement('script'); tag.src = "https://www.youtube.com/iframe_api"; + tag.setAttribute("id", "yt-api"); var firstScriptTag = doc.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); win.onYouTubeIframeAPIReady = fn; @@ -371,9 +372,11 @@ }, initialize = function(id, opts){ + console.log('init'); utils.deepExtend(settings, opts); settings.element = (typeof id==='string') ? doc.getElementById(id) : id; if(settings.element && settings.user){ + console.log('settings set'); prepare.youtube(function(){ prepare.build(); action.bindEvents(); @@ -391,6 +394,13 @@ utils.events.removeEvent( settings.element, 'click', action.endpoints.playlistClick ); settings.element.className = ''; settings.element.innerHTML = ''; + window['YT'] = undefined; + window['YTConfig'] = undefined; + var widgetapi = document.getElementById("www-widgetapi-script"); + var ytapi = document.getElementById("yt-api"); + widgetapi.parentNode.removeChild(widgetapi); + ytapi.parentNode.removeChild(ytapi); + }; this.fullscreen = { state: function(){ From 8be88559105f1050cd8de9a5f3e3f4506f5bc352 Mon Sep 17 00:00:00 2001 From: Heath Naylor Date: Sat, 18 Apr 2015 01:25:49 -0600 Subject: [PATCH 2/2] Remove console logs --- src/ytv.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/ytv.js b/src/ytv.js index 288acd5..c5dac43 100644 --- a/src/ytv.js +++ b/src/ytv.js @@ -372,11 +372,9 @@ }, initialize = function(id, opts){ - console.log('init'); utils.deepExtend(settings, opts); settings.element = (typeof id==='string') ? doc.getElementById(id) : id; if(settings.element && settings.user){ - console.log('settings set'); prepare.youtube(function(){ prepare.build(); action.bindEvents();