2010-11-25 40 views
2

難道這會導致潛在的問題:我可以在網頁底部放置一個腳本,但是從頂部調用它嗎?

 
    <HTML> 
    <BODY> 
     ... 
     <INPUT name="xyz" onchange="myFunction();"> 
     ... 
    <SCRIPT> 
     function myFunction() 
     { 
      ... 
     } 
     </SCRIPT> 
    </BODY> 
    </HTML> 

如果頁面加載緩慢,表格底部的腳本部分呈現前會發生什麼裝?如果用戶在輸入框中輸入一些文本,會發生JavaScript錯誤嗎?

+0

很簡單 - 是的。無論如何,你爲什麼要這麼做? – 2010-11-25 12:41:10

回答

3

您需要加載腳本才能調用它。你爲什麼不改變它的東西是這樣的:

<input name="xyz" id="myInput"> 
     ... 
    <script> 
     function myFunction 
     { 
      ... 
     } 

     window.onload = function() { 
      var myInput = document.getElementById('myInput'); 
      myInput.onchange = myFunction; 
     } 
     </script> 

這種方法可以讓你分開你的標記和腳本,並把所有的JS在一個地方。

1

它可以工作,但如果您加載了更多的HTML,並且瀏覽器在最後解析JavaScript所用的時間較長,則可能會出現問題。在這種情況下,你的功能將不會被定義,你會得到...

myFunction的()沒有定義

注意你需要添加開盤價和收盤括號(( & ))之後myFunction

雖然函數聲明被掛起,但它們只在其包含的腳本塊中被掛起。

此外,你應該真的使用小寫標籤,它不是1998年:)而文檔類型也有幫助,最後,你應該嘗試從內聯屬性中刪除你的事件處理程序。

0

該腳本需要在DOM被執行前定義。如果腳本位於底部,則需要在使用前加載腳本。

相關問題