我在HTML文件中有一個腳本標籤HTML腳本標記和JavaScript文件通信
<head>
<script src="myjs.js"></script>
<script>
</script>
</head>
<body>
</body>
和外部JavaScript文件,有沒有辦法在腳本標籤中的變量與在JavaScript文件中的腳本互動?
我在HTML文件中有一個腳本標籤HTML腳本標記和JavaScript文件通信
<head>
<script src="myjs.js"></script>
<script>
</script>
</head>
<body>
</body>
和外部JavaScript文件,有沒有辦法在腳本標籤中的變量與在JavaScript文件中的腳本互動?
絕對如此。一旦你的外部文件被加載到頁面中,就好像它被編碼在頁面中一樣,就像你的第二個腳本一樣。根據你如何確定變量的範圍,可能會有衝突,並且可以更改/覆蓋值。
你的HTML結構似乎無效
應該
<html>
<head>
<script type="text/javascript" src="myjs.js"></script>
<script type="text/javascript">
//Now you can use external variable here
</script>
</head>
<body>
</body>
</html>
腳本文件的兩個內容和下面的腳本元素,好像他們是在一個腳本元素將被視爲全局代碼。
然而,在第一文件中的代碼將所述第二腳本元素的含量之前執行被解析或執行(這意味着聲明並在所述第二腳本初始化變量不用於第一腳本存在)。
如果您想從腳本標記中的代碼引用JavaScript文件中的變量,則需要確保已加載JavaScript文件。這樣做的常用方法是將一個處理程序附加到window.onload事件,並引用該處理程序中文件的變量。最簡單的(但不一定是最好的)的方式來做到這一點如下:
<script>
window.onload = function() {
// reference loaded variables, domNodes, etc
}
</script>
大多數JavaScript庫/框架有這樣做的機制。有關一個示例,請參閱jQuery .ready()。
如果你有一個大的應用程序,你想拆分成有意義的模塊,我建議調查AMD(異步模塊定義)。有一組幻燈片描述了AMD是什麼以及爲什麼你會想要使用它http://blog.amt.in/asynchronous-module-definition-amd-why-what-a
沒有DOCTYPE仍然是非常無效的。 – 2012-08-10 02:54:10
HTML,head和body標籤都可以省略,唯一缺少的是標題元素和任何塊元素(div或table會這樣做)。但問題不在於有效的HTML。 – RobG 2012-08-10 02:58:44