2011-11-12 20 views
2

HTML:菜鳥試圖JS和HTML編碼...並慘遭失敗

<!DOCTYPE html> 
<html> 
<head> 

<SCRIPT language="JavaScript" src="mapbody.js"></SCRIPT> 
</head> 
<body> 

    <A HREF="javascript:a_message()">Click for a message..</A> 

</body> 
</html> 

mapbody.js:

function a_message() 
{ 
alert('I came from an external script! Ha, Ha, Ha!!!!'); 
} 

當我拉起網頁並點擊鏈接沒有任何反應。這兩個文件都在同一個文件夾中。我錯過了什麼?

+3

你怎麼敢用這樣的代碼使用HTML5文檔? – MatTheCat

+2

我剛試過這個,它爲我工作(使用Firefox,如果這有所作爲)。 –

+1

剛剛在最新的Chrome和Firefox中測試過。 –

回答

4

幾件事情:

  1. HTML元素都應該是小寫。
  2. language-屬於script -tag的標籤已過時。改爲使用type="text/javascript"
  3. JavaScript函數調用應該進入onclick-attribute,而不是href

一個適當的實現可能是這樣的:

<!DOCTYPE html> 
<html> 
<head> 
<title>Is required!</title> 
<script type="text/javascript" src="mapbody.js"></script> 
</head> 
<body> 
    <a onclick="a_message();" href="#">Click for a message..</a> 
</body> 
</html> 

而且,使用onclick(或任何其他onXX -attribute)是老派結合功能調用的HTML元素。類庫jQuery使您能夠使用CSS選擇器來綁定特定HTML元素上的操作,這可以完全分離HTML和JavaScript。

+2

除了所有這些東西,代碼應該仍然工作。 –

+3

我不同意3rd,它不應該在HTML中。 – Esailija

+2

因爲原來的代碼應該工作,我很想downvote。建議做這些事情,但不是解決問題的辦法。 – Ivan

0
<!DOCTYPE html> 
<html> 
    <head> 
     <title>...</title> 
    </head> 
    <body> 
     <a href="#" onclick="a_message();">Click for a message..</a> 
     <script type="text/javascript" src="mapbody.js"></script> 
    </body> 
</html> 

Lukas Knuth比我快。 :)

0

對我的作品(火狐8):http://jsfiddle.net/FCXxU/

是網址你的腳本好?

一個簡單的方法來檢查,即在mapbody.js(函數之前)的開頭處添加alert('test');

+0

警報('測試')的作用是什麼? –

+1

只會顯示一條帶有「test」字樣的信息。如果出現該消息,則表示該URL是正確的。否則不正確。 – fflorent