diff --git a/src/js/component.js b/src/js/component.js index 3deb4bb68..97f4dbf43 100644 --- a/src/js/component.js +++ b/src/js/component.js @@ -23,7 +23,7 @@ vjs.Component = function(player, options, ready){ this.name_ = options['name'] || null; - // Create element if one wasn't provided in potions + // Create element if one wasn't provided in options this.el_ = options['el'] || this.createEl(); this.children_ = []; diff --git a/src/js/media.html5.js b/src/js/media.html5.js index 4a63a8320..5b2ad108b 100644 --- a/src/js/media.html5.js +++ b/src/js/media.html5.js @@ -68,6 +68,9 @@ vjs.Html5.prototype.createEl = function(){ className:'vjs-tech' }); } + // associate the player with the new tag + el['player'] = player; + vjs.insertFirst(el, player.el()); } diff --git a/test/unit/media.html5.js b/test/unit/media.html5.js index b89f00256..a3c1698d6 100644 --- a/test/unit/media.html5.js +++ b/test/unit/media.html5.js @@ -16,3 +16,22 @@ test('should detect whether the volume can be changed', function(){ ok(!vjs.Html5.canControlVolume()); vjs.TEST_VID = testVid; }); + +test('should re-link the player if the tech is moved', function(){ + var player, tech, el; + el = document.createElement('div'); + el.innerHTML = '
'; + player = { + id: function(){ return 'id'; }, + el: function(){ return el; }, + options_: {}, + ready: function(){} + }; + tech = new vjs.Html5(player, {}); + tech.features = { + movingMediaElementInDOM: false + }; + tech.createEl(); + + strictEqual(player, tech.el()['player']); +}); \ No newline at end of file