你好,我的html 檔案概述如下(節錄body區塊)
<script language="javascript" type="text/javascript" src="MyJs.js"></script>
<script language="javascript" type="text/javascript">
ShowMyValue();
</script>
我的 JavaScript 檔案如下:
var myValue="Hello ShowMyValue";
function ShowMyValue()
{
window.alert(myValue);
}
很奇怪的一點是,透過從 html 網頁檔中連結外部的JavaScript檔,並呼叫 JavaScript檔案中的ShowMyValue 函式
就會出現 Undefine 這個錯誤訊息
如果把 myValue變數和ShowMyValue() 函式放在 html 檔案中就一切正常的顯示 "Hello ShowMyValue"
有人知道問題出在哪嗎?
感謝回覆。
無法複製出你的錯誤耶?請你檢查一下,是否有拼字等等的錯誤。(我用了IE, Firefox, Chrome, Safari都跑一次)另外,你使用的瀏覽器與版本?
除非在script tag中指定defer或是async屬性來改變script載入與執行的方式,script是會依序「同步」解析與執行,不論是外部檔或是內嵌在html內,所以理論上不應該發生這樣的錯誤才對。
你必須確認檔案已經 download 下來,並且已經執行完畢,那麼下面的呼叫才能執行。否則雖然你的程式程序沒有錯,但是有可能檔案都還沒 download 下來,程式就已經跑到 ShowMyValue() 執行的地方了,於是就會出現 Undefined 錯誤。
所以通常會把執行指令放在 onload 事件裡,確保所有外部 js 都已經執行完畢,這樣才能正確執行。
用.js的話...網頁會先執行才會再執行.js,用外部檔載入會比較慢~
建議放在onload事件執行~
<pre class="c" name="code">
<script language="javascript" type="text/javascript" src="MyJs.js"></script>
<script language="javascript" type="text/javascript">
window.onload = function(){
ShowMyValue();
}
</script>