2016-02-01 60 views
3

我有皮膚的DNN。我的頭標記已RUNAT =「服務器」,所以我試圖在代碼中加入代碼的head標籤內爲這樣是否適合異步並推遲語法爲async =「async」?

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

後面我設置的屬性VAR 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驗證器/瀏覽器,因爲它們只會忽略屬性存在的價值和工作(正如Mike C指出的那樣) –