@@ -369,27 +369,36 @@ private function includeInHTMLViaDOMDocument($html) {
369
369
370
370
if ($ script_requirements ) {
371
371
// 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
+ }
374
376
}
375
377
376
378
if ($ lazy_css_requirements ) {
377
379
// 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
+ }
380
384
}
381
385
382
386
if ($ css_requirements ) {
383
387
// 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
+ }
386
392
}
387
393
388
394
if ($ head_requirements ) {
389
395
// 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
+ }
392
400
}
401
+
393
402
}
394
403
$ end = microtime (true );
395
404
0 commit comments