2009-12-29 32 views
0

我有一個javascript,在像這樣的元素內執行:<a href="javascript:doSomething();">但它不會在window.load上執行,任何人都知道爲什麼會發生這種情況?javascript不會在window.load上執行

+0

因爲你沒有執行上window.load的JavaScript,並用它在a.click反而可能。 – Numenor 2009-12-29 14:22:35

+0

你的意思是window.onload而不是window.load? – 2009-12-29 14:26:09

回答

2

您是否試過編寫<body onload="doSomething();">

6

上面的例子中doSomething()只會在用戶點擊錨時調用。如果你想讓它在window.load上執行,你需要把代碼放在頭上。即

<script type="text/javascript"> 
    window.onload = doSomething; 
</script> 

另外,如果你要使用onload事件很多我個人建議讓jQuery和使用它的「論DOM準備」的事件。這樣,您的JavaScript將對最終用戶無縫顯示,並且不會產生閃爍效果。

1

假設你做了所有其他建議,代碼後面的某個人(在你的<body onload=...window.onload = ...之後)做的完全一樣,並且已經覆蓋了你。
如果碰巧是這樣的(低機率)的解決方案來支持您的onload掛鉤的,是window.attachEvent("onload", doSomething)

+0

始終使用「attachEvent」添加事件處理程序的方式。好處很多,並且有據可查。 – jrharshath 2009-12-29 14:28:20

0

如果我正確理解你的問題,你想設置一個元素的屬性,動態地計算它通過javascript,這樣當頁面加載時,鏈接指向「doSomething()」的返回值。

因此,您可以使用JavaScript的DOM操作實用功能。 你的情況是這樣的:

<a id="myLink">my anchor</a> 
... 
<script type="text/javascript"> 
    getElementById('myLink').href = doSomething(); 
</script>