2016-10-09 6 views
0

В некоторых случаях у меня есть страницы без какого-либо контента, но сценарий, который что-то делает (например, отправляет данные через postMessage, затем закрывается).Минимальные требования к тегу скрипта и действительности страницы

В таких случаях, страница действительна только с <script>doSomeStuff</script> или же оно также требует доктайп как так:

<!DOCTYPE html> 
<html> 
<script>doSomeStuff</script> 
</html> 

Или страница нужен полный HTML заявление как:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="UTF-8"> 
    <script>doSomeStuff</script> 
</head> 
</html> 

One может подумать, что разумнее включить <meta charset="UTF-8">, так как в противном случае страница может страдать от ошибок в кодировке, а сценарий неправильно или никогда не интерпретируется.

ответ

2

Если вы хотите иметь действительный документ HTML, вы должны следовать нормальным правилам. Исключений для документов, основанных на JavaScript, нет.

В вашем случае, минимальный HTML5 документ будет:

<!DOCTYPE html> 
<title>Some title</title> 
<script>doSomeStuff</script> 

title element is sometimes optional, но, вероятно, не в вашем случае.

meta - charset элемент только required if you don’t specify the character encoding in a different manner.

+0

Спасибо за ваш ответ! Действительно ли открыть html-тег с doctype '', не закрывая его в конце? – Buzut

+1

@Buzut: DOCTYPE не является признаком открытия элемента 'html'. Если вы хотите иметь тег 'html' start, ваш документ начнется с:' '. Для элемента 'html' вы можете опустить только начальный тег (' ') или только конечный тег (' ') или оба тега (например, в моем минимальном примере) - с [исключениями, если комментарии задействованы] (https://www.w3.org/TR/2014/REC-html5-20141028/semantics.html#the-html-element). – unor

+0

Благодарим вас за это. – Buzut