@@ -369,27 +369,36 @@ private function includeInHTMLViaDOMDocument($html) {
369369
370370 if ($ script_requirements ) {
371371 // add scripts
372- $ fragment ->loadHTML ( $ script_requirements , LIBXML_HTML_NODEFDTD );
373- $ body ->appendChild ( $ dom ->importNode ( $ fragment ->documentElement , true ) );
372+ $ fragment ->loadHTML ( $ script_requirements , LIBXML_HTML_NODEFDTD | LIBXML_HTML_NOIMPLIED );
373+ foreach ($ fragment ->getElementsByTagName ('script ' ) as $ script ) {
374+ $ body ->appendChild ( $ dom ->importNode ( $ script , true ) );
375+ }
374376 }
375377
376378 if ($ lazy_css_requirements ) {
377379 // Lazy css requirements end up as <link> tags before the </body> - non critical CSS
378- $ fragment ->loadHTML ( $ lazy_css_requirements , LIBXML_HTML_NODEFDTD );
379- $ body ->appendChild ( $ dom ->importNode ( $ fragment ->documentElement , true ) );
380+ $ fragment ->loadHTML ( $ lazy_css_requirements , LIBXML_HTML_NODEFDTD | LIBXML_HTML_NOIMPLIED );
381+ foreach ($ fragment ->getElementsByTagName ('link ' ) as $ link ) {
382+ $ body ->appendChild ( $ dom ->importNode ( $ link , true ) );
383+ }
380384 }
381385
382386 if ($ css_requirements ) {
383387 // Put standard CSS requirements at base of </head>
384- $ fragment ->loadHTML ( $ css_requirements , LIBXML_HTML_NODEFDTD );
385- $ head ->appendChild ( $ dom ->importNode ( $ fragment ->documentElement , true ) );
388+ $ fragment ->loadHTML ( $ css_requirements , LIBXML_HTML_NODEFDTD | LIBXML_HTML_NOIMPLIED );
389+ foreach ($ fragment ->getElementsByTagName ('link ' ) as $ link ) {
390+ $ head ->appendChild ( $ dom ->importNode ( $ link , true ) );
391+ }
386392 }
387393
388394 if ($ head_requirements ) {
389395 // Put <head> requirements at base of </head>
390- $ fragment ->loadHTML ( $ head_requirements , LIBXML_HTML_NODEFDTD );
391- $ head ->appendChild ( $ dom ->importNode ( $ fragment ->documentElement , true ) );
396+ $ fragment ->loadHTML ( $ head_requirements , LIBXML_HTML_NODEFDTD | LIBXML_HTML_NOIMPLIED );
397+ foreach ($ fragment ->getElementsByTagName ('* ' ) as $ node ) {
398+ $ head ->appendChild ( $ dom ->importNode ( $ node , true ) );
399+ }
392400 }
401+
393402 }
394403 $ end = microtime (true );
395404
0 commit comments