2012-07-07 43 views
0

簡單的問題。參考HTML in .js

我是javascript和html的新手。

我有一個index.html文件,如:

<html> 
<head> 
<link rel=StyleSheet href="beauty.css" type="text/css"> 
<script src="myjs.js"></script> 

</head> 
<body> 
<p id="foo"></p> 
</body> 
</html> 

,這是我的js文件:

var d=new Date(); 
var month = d.getMonth()+1; 
var data = d.getDate() + "/" + month + "/" + d.getFullYear(); 
function showdata(){ 
    return data; 
} 

document.getElementById("foo").innerHTML=showdata(); 

我明白,我需要引用的HTML,但我沒有想法怎麼做。

+0

你是什麼意思'參考html'?這可能意味着很多不同的東西...... – Jon 2012-07-07 23:12:46

+0

你想要「引用」哪個HTML? – 2012-07-07 23:13:01

+0

具有第一行代碼的index.html。 – cleliodpaula 2012-07-07 23:14:15

回答

1

你可能想

window.onload = function() { 
    var d=new Date(); 
    var month = d.getMonth()+1; 
    var data = d.getDate() + "/" + month + "/" + d.getFullYear(); 
    function showdata(){ 
     return data; 
    } 

    document.getElementById("foo").innerHTML=showdata(); 
} 

您可能還需要在您的<script>標記指定type="text/javascript"

+0

完美。只是這個。謝謝。 – cleliodpaula 2012-07-07 23:16:54

+1

'window.onload'的一個問題是隻能以這種方式附加一個函數。如果您爲了其他目的需要它,或者您使用了一些第三方腳本,則一個聲明將覆蓋所有其他聲明。您可能想嘗試Xavi的解決方案,或者查看一些內容,以幫助您在DOM準備好或窗口加載時運行多個事件,而不僅僅是一個。 – 2012-07-08 02:23:11

0

嘗試將腳本標記移動到頁面底部。在關閉</body>標記之前。這樣的事情:

<html> 
    <head> 
    <link rel=StyleSheet href="beauty.css" type="text/css"> 

    </head> 
    <body> 
     <p id="foo"></p> 
     <script src="myjs.js"></script> 
    </body> 
</html> 

問題是,您的JavaScript代碼是在段落元素是頁面的一部分之前執行的。

+0

爲什麼倒票?無論如何,將腳本移動到頁面底部通常都是很好的做法。它有助於改進感知的頁面加載。每次遇到腳本標記時,瀏覽器都必須暫停頁面呈現。通過在頁面底部放置腳本標籤,瀏覽器有機會在暫停執行javascript之前呈現所有頁面的內容。另外,'window.onload'只有在頁面上的所有資源都被加載後纔會執行,這在很多情況下會不必要地拖延JavaScript執行。 – Xavi 2012-07-07 23:37:09