2016-02-01 4 views
3

У меня есть DNN со шкурами. моя голова тег RUNAT = «сервер», так что я пытался добавить тег внутри тегов головок, такэто нормально для синтаксиса async и defer для async = "async"?

<script async defer src="https://maps.googleapis.com/maps/api/js?key=<%#GoogleAPIkey%>"></script> 

в коде позади Я поставил УАК GoogleAPIkey в собственности. Проблема заключается в том, что она не загружает значение.

Затем я попытался добавить тег сценария в коде, как это

HtmlGenericControl jqueryInclude = new HtmlGenericControl("script"); 
    jqueryInclude.Attributes.Add("type", "text/javascript"); 
    jqueryInclude.Attributes.Add("async", "async"); 
    jqueryInclude.Attributes.Add("defer", "defer"); 
    jqueryInclude.Attributes.Add("src", "https://maps.googleapis.com/maps/api/js?key=" + GoogleAPIkey); 

этот метод выводит тег как

<script async="async" defer="defer" src="https://maps.googleapis.com/maps/api/js?key=xxx"></script> 

является этим правильным синтаксисом или мне нужно persue другого метода выписывая его - или, возможно, даже перемещая его из заголовков.

ответ

4

В спецификации указано, что async is a boolean attribute. Что же касается, как указаны boolean attributes:

Наличие булева атрибута элемента представляет собой истинное значение, и отсутствие атрибута представляет собой ложное значение.

Примечание: Значения «true» и «false» не допускаются к логическим атрибутам. Чтобы представить ложное значение, атрибут должен быть полностью опущен.

Технически, важно то, что атрибут существует, а не то, что его ценность. Это означает, что вы можете использовать async="async".

+0

Я считаю, что на 100% не обязательно, чтобы атрибуты XHTML всегда имели значение, а это значит, что вам нужно будет использовать 'async = async', чтобы удовлетворить этот валидатор. В любом случае, это не повредит «нормальным» валидаторам/браузерам HTML, поскольку они будут просто игнорировать значение и работать, основываясь на том факте, что атрибут существует (как указывал Майк С) –

Смежные вопросы