2012-09-25 37 views
0

在register.js裏面我有一個叫做username()的函數,我想從我的網頁調用它,但函數不會運行。javascript函數調用不工作

這裏就是我包括.js文件並調用函數:

<head> 
     <link rel="stylesheet" href="css/base.css" /> 
     <script src="resources/jquery-1.8.1.min.js"></script> 
     <script src="resources/register.js"></script> 
     <script type="text/javascript">username();</script> 
</head> 

這是.js文件:

function username(){ 
    document.getElementById("username").innerHTML="Username already in use"; 
} 

回答

2

這是一個從剛開始使用Javascript的人們常見的錯誤。麻煩的是,如果你不知道該怎麼稱呼它,很難找到答案。

發生了什麼:當<head>元素被處理時,文檔體中還沒有任何東西存在。您的元素username不存在,所以getElementById失敗。

解決方案1 ​​<script type="text/javascript">username();</script>移動到</body>之前,所以一切都將到位。

解決方案2使用onload事件來運行你的Javscript後,一切與

<body onload="username()"> 

運行(jQuery有自己的onload事件處理爲好。)

+0

謝謝!當你想到它時,這實際上是非常合乎邏輯的。 – dinners

2

您還沒有元素id爲username。 (您可能在文檔中有一個較低的位置,但您沒有與我們分享,但由於您直接調用該函數(而不是響應事件,例如load),而仍在<head>中它不會存在。)