diff --git a/src/js/contentscript.js b/src/js/contentscript.js index f278a6a..e45ad5a 100644 --- a/src/js/contentscript.js +++ b/src/js/contentscript.js @@ -472,18 +472,29 @@ var collapser = (function() { meta.parentNode.removeChild(meta); }; + var morphNoscript = function(from) { + if ( document instanceof XMLDocument ) { + var to = document.createElement('span'); + while ( from.firstChild !== null ) { + to.appendChild(from.firstChild); + } + return to; + } + var parser = new DOMParser(); + var doc = parser.parseFromString( + '' + from.textContent + '', + 'text/html' + ); + return document.adoptNode(doc.querySelector('span')); + }; + var renderNoscriptTags = function(response) { if ( response !== true ) { return; } - var parser = new DOMParser(); - var doc, parent, span; + var parent, span; for ( var noscript of noscripts ) { parent = noscript.parentNode; if ( parent === null ) { continue; } - doc = parser.parseFromString( - '' + noscript.textContent + '', - 'text/html' - ); - span = document.adoptNode(doc.querySelector('span')); + span = morphNoscript(noscript); span.style.setProperty('display', 'inline', 'important'); if ( redirectTimer === undefined ) { autoRefresh(span);