2012-12-03 114 views
3

是這段代碼SCRIPT SRC的JavaScript

 var head=document.getElementsByTagName('head')[0] 
     var script=document.createElement('script') 
     script.setAttribute('type', 'text/javascript') 
     script.setAttribute('src', "http://your-script.com/address-here.js") 
     head.appendChild(script) 

和驗證碼

 <script type="text/javascript" src="http://your-script.com/address-here.js"> 

     </script> 

謝謝之間的差異。

+2

後者可以由第一個創建?一個是硬編碼在HTML中,另一個是動態創建..?你的問題有什麼意義?有沒有關於你不明白的兩個具體問題? –

+1

那麼我在一些代碼中看到程序員使用這兩個選項,所以我不明白爲什麼要使用它們而不僅僅是一個 – user1801625

回答

2

頂部的javascript會將一個新元素添加到文檔的第一個頭標記,該元素應該等於<script type="text/javascript" src="http://your-script.com/address-here"></script>(或接近)。唯一的區別是,瀏覽器在遇到它時立即加載HTML版本,而JS將不會被加載直到元素完成附加。

正如@lostsource所提到的,這通常用於加載依賴腳本或用於引入polyfills,例如, if(!someJSFeatureIWant) {//import the script here}

1

一個是JavaScript,它會在創建後向DOM添加腳本。另一個是HTML,並在創建DOM時將腳本添加到DOM。

2

第一個通常用作包含腳本所需的其他Javascript文件的方式。 (它只是像第二個代碼示例一樣動態創建一個<script>標記)

例如,您可能在main.js文件中包含核心功能,然後根據用戶交互性決定是否包含其他腳本。 (例如,graphics.js,forms.js等)。

同樣的方法也被用來通過動態地包含返回JSON'填充'響應的url來製作JSON-P請求。與iframesXHR常規XHR的主要優勢是<script>標籤不受同一來源策略的影響。

0

實質上,兩個加載一個js文件,但第一個示例有效地創建另一個按需。

var head=document.getElementsByTagName('head')[0] 
var script=document.createElement('script') 
script.setAttribute('type', 'text/javascript') 
script.setAttribute('src', "http://your-script.com/address-here.js") 
head.appendChild(script) 

您通常會使用它將外部代碼加載到運行中的頁面上(創建後)。該示例中使用的這種特定語法也會污染全局範圍,因此不應按原樣使用。

<script type="text/javascript" src="http://your-script.com/address-here.js"> 
</script> 

這是加載腳本文件的自然HTML語法。如果頁面代碼在您的控制之下,除非在需要或出於優化目的的特殊情況下,您沒有理由使用除此以外的任何內容。

相關問題