JavaScript setTimeout 传递函数参数与对象的方法

作者:拾光时间:2026-10-24 19:05:23浏览:587

本文介绍在 JavaScript 中使用 setTimeout 时如何正确传递函数参数及对象。通过示例展示了处理表单数据及 DOM 对象引用的技巧,包括利用闭包或索引引用解决参数丢失问题,适用于需要延迟执行且需传递复杂参数的场景。

JavaScript setTimeout 传递参数与对象的方法

经网络检索,尝试采用 `setTimeout("fun("+参数+")", 1000)` 的字符串拼接方式,该方案在传递表单 textarea 内容时有效,例如 HTML 结构如下:


代码示例:

 
<body>
<div class="main">
<div id="showpane" class="showpane"> </div>
<div class="textarea">
<form method="post" action="" name="sform">
<textarea name="txtara"></textarea>
<div>
<input type="submit" name="subt" value="send" onclick="doAjax(sform.txtara.value);return false;"/>
</div>
</form>
</div>
</div>
</body>

在 JS 中可如下编写:

setTimeout("doAjax(document.sform.txtara.value )", 1000);


若需传递其他参数或对象,按网络常见方法需重写函数。


经研究实践,本人改进该方法供参考,基于个人需求,其他情况未作保证,敬请指正!


代码示例:

 
<body>
<div class="main">
<div id="showpane" class="showpane">
</div>
<div class="textarea">
<form method="post" action="" name="sform">
<textarea name="txtara"></textarea>
<div>
<input type="submit" name="subt" value="send" onclick="doAjax(sform.txtara.value, this);return false;"/>
</div>
</form>
</div>
</div>
</body>

JavaScript:

代码示例:

 
function initAjax() {
var httprequest=null;
try {
httprequest=new ActiveXObject("Msxml2.XMLHTTP");
} 
catch (e) {
try {
httprequest=new ActiveXObject("Microsoft.XMLHTTP");
} 
catch (e) {
try {
httprequest=new XMLHttpRequest();
} 
catch (e) {
httprequest=null;
} 
} 
} 
return httprequest;
} 
function doAjax( msg, obj ) {
var obj=obj; //关键行
alert( obj.value);
var he="he="+msg;
var ajaxrequest=initAjax();
ajaxrequest.open("POST", "abc.jsp", true);
ajaxrequest.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
ajaxrequest.send(he);
ajaxrequest.onreadystatechange=function() {
if (ajaxrequest.readyState==4) {
if (ajaxrequest.status==200) {
document.getElementById("showpane").innerHTML=ajaxrequest.responseText;
} 
else {
doAjax( msg );
} 
} 
} 
setTimeout("doAjax(document.sform.txtara.value,document.all["+obj.sourceIndex+"])", 100);//关键行
} 

至此解决对象参数传递问题,若有更优方案请留言,本人愿与同行交流!

作者最新文章