我有一个在以下元素中执行的javascript:<a href="javascript:doSomething();">
但是它不会在window.load上执行,有人知道为什么会这样?
答案 0 :(得分:6)
通过上面的示例,只有在用户单击锚点时才会调用doSomething()。如果你想在window.load上执行它,你需要将代码放在头部。即。
<script type="text/javascript">
window.onload = doSomething;
</script>
另外,如果您将要使用onload事件,我个人会建议使用jQuery并使用它'在DOM ready'事件。这样,您的javascript将无缝地显示给最终用户,并且不会产生闪烁效果。
答案 1 :(得分:2)
您是否尝试过编写<body onload="doSomething();">
?
答案 2 :(得分:1)
假设您已经完成了所有其他建议,那么代码后面的某个人(<body onload=...
或window.onload = ...
之后)完全相同,并且已经覆盖了您。
如果恰好是这种情况(可能性很小)支持两个onload挂钩的解决方案是window.attachEvent("onload", doSomething)
答案 3 :(得分:0)
如果我正确理解你的问题,你想在一个元素中设置一个属性,通过javascript动态计算它,这样当页面加载时你的链接指向“doSomething()”的返回值。
为此,您可以使用javascript的DOM操作实用程序功能。 在你的情况下像:
<a id="myLink">my anchor</a>
...
<script type="text/javascript">
getElementById('myLink').href = doSomething();
</script>