Как использовать DOMDocument для добавления скрипта в HTML5 - PullRequest
4 голосов
/ 06 марта 2011

а) Прав ли я, полагая, что правильный формат для сценария в голове в HTML5 равен <script src="script.js"></script>?

б) Как добиться правильного результата с помощью DOMDocument?

$domImplementation = new \DOMImplementation ();     

$docType = $domImplementation->createDocumentType ( 'html', '', '' );       

$document = $domImplementation->createDocument ( 'http://www.w3.org/1999/xhtml', 'html', $docType );

$head = $document->createElement ( 'head' );

$script = $document->createElement ( 'script', '' );

$script->setAttribute ('src', 'script.js');

$head->appendChild ( $script );

производит

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

  <head>

    <script src="script.js"/>

Валидатор HTML5 говорит

Самозакрывающийся синтаксис (/>), используемый для непустого элемента HTML. Игнорирование косой черты и обработка в качестве начального тега.

1 Ответ

5 голосов
/ 06 марта 2011

Теги Javascript, даже если они загружают внешний файл с помощью атрибута src=, не могут быть автоматически закрыты.Возможно, вам придется добавить непустой контент к создаваемому вами элементу DOM, чтобы он не закрывался самостоятельно.Подойдет текстовый узел с одним пробелом.

...