2015-02-07 67 views
-1

我想在页面加载后立即执行两个函数,我在脚本中使用了onload和脚本中的windows.onload,但两者都不起作用。 这里是我的代码windows.onload函数不工作

<html> 
<head> 
<title>(Type a title for your page here)</title> 
<script type="text/javascript"> 

function my_code(){ 
alert(" Alert inside my_code function"); 
var text_val = document.getElementById("t2"); 
text_val.select(); 
} 

window.onload=my_code(); 
</script> 

</head> 
<body > 

<form name=form1 method=post action=''> 
<input type=text name=t1 value=plus2net id="t2"> 
</form> 

</body> 
</html> 

替换或增加的代码都被接受,给予一定的链接,我得到更多的信息。 由于事先

+3

从onload代码中删除括号。 – Mouser 2015-02-07 11:37:51

+0

已多次询问并以多种形式回答。您需要了解函数引用和函数调用之间的区别。 – 2015-02-07 13:32:39

回答

1

更改此:

window.onload=my_code(); 

对此应该这样做:

window.onload=my_code; 

之所以:my_code()导致要执行的功能。如果没有(),则您将该函数作为窗口上的onload事件的参考。 onload事件被触发时将执行该函数。

更好的是正在使用事件设置器addEventListener。当其他代码(如jQuery或其他库)使用window.onload时,使用addEventListener不会导致onload事件被覆盖。

window.addEventListener("load", my_code, false); //you need to omit the "on" when assigning with this method. 

这是首选的方法。

+0

是什么让你觉得jQuery使用'window.onload'? – 2015-02-07 13:33:22

+0

@torazaburo,我不认为jQuery会这样做,但是任何人都可以编写一个jQuery插件(我承认编码不好)可能会覆盖您的window.onload。 – Mouser 2015-02-07 13:34:38

+1

我同意使用'window.onload'是不理想的。但是,任何劫持这个垃圾邮件的库都是你不应该使用的垃圾邮件。 – 2015-02-07 13:40:22