2009-12-29 68 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>