什么是HTML中的script標(biāo)簽?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。
為文水等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及文水網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、文水網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
最初,網(wǎng)景公司想要在瀏覽器中展示使用js的html文件,但是又不想影響這個(gè)文件在其他瀏覽器中的顯示效果,于是創(chuàng)造了 script 標(biāo)簽
我們都知道標(biāo)簽可以在里面添加屬性,script標(biāo)簽有下面的屬性:
// 必須寫成下面的樣子
注意:
本來標(biāo)簽應(yīng)該放在header里面,但是因?yàn)榉旁趆eader中,在加載js的時(shí)候,頁面還不會(huì)渲染(頁面只有加載到body才會(huì)開始渲染),導(dǎo)致頁面出現(xiàn)較長時(shí)間的白,所以現(xiàn)在我們放在body的最后
...
在script中加入defer屬性之后,放到header中理論上也可以達(dá)到延遲執(zhí)行的目的,但是由于不同瀏覽器對(duì)于defer的支持不同(執(zhí)行順序不確定,內(nèi)嵌的js不支持defer等),最好我們還是按照上面的寫法寫在body的最后。
async屬性也是為了解決腳本異步加載的問題,同樣也是不支持嵌入的js腳本,本來它跟defer的區(qū)別是 defer 按順序加載,async不按順序加載,但是在實(shí)際使用中,瀏覽器對(duì)于這個(gè)屬性的支持也不一樣,兩個(gè)屬性都不能保證腳本的順序執(zhí)行以及在DOMContentLoaded之前執(zhí)行,所以在瀏覽器徹底支持之前,最好還是不要用這個(gè)屬性了。
當(dāng)瀏覽器禁用js或者瀏覽器根本不支持js(當(dāng)然現(xiàn)在這種很少了),需要平穩(wěn)退化,所以需要noscript標(biāo)簽
它的作用是,當(dāng)發(fā)生上面提到的情況的時(shí)候,顯示noscript中的內(nèi)容,看下面的例子
注意如果瀏覽器啟用了JS,則這個(gè)標(biāo)簽里的內(nèi)容不會(huì)顯示。
關(guān)于什么是HTML中的script標(biāo)簽問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。