2013-01-04 142 views
1

這個工程外部對象...的JavaScript的HTML調用外部文件

HTML文件...

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<script type="text/javascript" src="src/myJS.js"></script> 
</head> 
<body onload="myJS();"> 
</body> 
</html> 

外部JavaScript文件的內容(被稱爲爲方便myJS.js)...

myJS = function() 
{ 
    document.write("Hello world"); 
}; 

但是,這並不工作...

HTML文件...

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<script type="text/javascript" src="src/myJS.js"></script> 
</head> 
<body onload="myJS.myFunction();"> 
</body> 
</html> 

外部JavaScript文件...

myJS = function() 
{ 
    myFunction = function() 
    { 
     document.write("Hello world"); 
    }; 
}; 

爲什麼不呢?預先感謝您的幫助。

回答

3

在另一個函數內聲明的函數不會成爲該函數的屬性。 如果你想myJS要與myFunction的對象作爲一個方法,你可以做到這一點

myJS = {  
    myFunction: function() 
    { 
     document.write("Hello world"); 
    } 
}; 
+0

一個JSON對象,這會是關閉的例子嗎? – Extermiknit

+0

@MartinJacobs不,只是一個方法的對象。 – Musa

0

腳本創建了兩個全局函數...

所以myJS創建一個名爲myFunction其中任何一個罐的另一功能被獨立調用。

看起來像你想象

myJS = { 
    myFunction: function() { 
     document.write("Hello world"); 
    } 
}