window.settimeout()方法要调用带参数的函数有两种方法:
1.
复制代码 代码如下:
function init(){
var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random();
//alert(url);
window.setTimeout(function(){ searchJDWater(url);},100);
}
2.
复制代码 代码如下:
function init(){
var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random();
//alert(url);
window.setTimeout(“searchJDWater(”+url+“)”, 100);
}
注意: 带参数方法使用setTimeout要注意,setTimeout("函数名("+参数+")",毫秒数),这里的参数只能是字符串形式的,而不能传递一个对象
---------------------------
以下的方法是错误的,而且浏览器状态栏会提示参数无效:
复制代码 代码如下:
function init(){
var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random();
//alert(url);
window.setTimeout(searchJDWater(url), 100);
}
--------------------------------------------------------------
settimeout()函数扩展:
网上很多朋友也在问此类问题,我在此说明下,以下我举几个个简单的例子:
网上查找下“带参数 setTimeout”,很多朋友写了很多方法来实现使用setTimeout带对象的方法循环,例如:
复制代码 代码如下:
<script language="javascript">
var __sto = setTimeout;
window.setTimeout = function(callback,timeout,param)
{
var args = Array.prototype.slice.call(arguments,2);
var _cb = function()
{
callback.apply(null,args);
}
__sto(_cb,timeout);
}
//测试代码
function aaaa(a)
{
alert(a);
}
function aaaaa(a,b,c)
{
alert(a + b + c);
}
var a = new Object();
window.setTimeout(aaaa,1000,a);
window.setTimeout(aaaaa,2000,a,6,7);
</script>
此例中,setTimeout用法,setTimeout(回调函数,时间,参数1,...,参数n)。
又例如:
2:
复制代码 代码如下:
<script type="text/javascript">
var _st = window.setTimeout;
window.setTimeout = function(fRef, mDelay) {
if(typeof fRef == 'function'){
var argu = Array.prototype.slice.call(arguments,2);
var f = (function(){ fRef.apply(null, argu); });
return _st(f, mDelay);
}
return _st(fRef,mDelay);
}
function test(x){
alert(x);
}
window.setTimeout(test,1000,'fason');
</script>
此例中,重载了一下window.setTimeout,用apply去回调前面的function。
例1:
复制代码 代码如下:
<script language="javascript">
function test(obj)
{
alert(obj);
setTimeout("test("+ obj +")",1000);
}
</script>
<input id="testButton" type="button" onclick="test(1)">
当鼠标按下此按钮时调用test(),将"1"传递进去,屏幕上每隔1000毫秒(1秒)弹出一次对话框,显示1,没问题。
例2:
复制代码 代码如下:
<script language="javascript">
function test(obj)
{
alert(obj);
setTimeout("test("+ obj +")",1000);
}
</script>
<input id="btnTest" type="button" onclick="test(this)">
这里的this可以当做document.getElementById("btnTest")来理解,当鼠标按下此按钮时向test函数传递的是一个对象,屏幕显示[object],
1000毫秒之后不再显示第二次。问题来了,浏览器左下报脚本错误,详细信息里显示object未定义。
例3:
复制代码 代码如下:
<script language="javascript">
function test(obj)
{
alert(obj);
setTimeout("test()",1000);
}
</script>
<input id="testButton" type="button" onclick="test(this)">
setTimeout里的test()没带参数,第一次显示[object],1000毫秒之后显示undefined,变量尚未赋值,也就是说用此方式可以实现带参数的方
法循环,但是参数被销毁。
其实这很简单就可以实现,不必写那么长的代码来实现。
例4:
复制代码 代码如下:
<script language="javascript">
function test(obj)
{
alert(obj);
setTimeout("test('"+ obj +"')",1000);
}
</script>
<input id="testButton" type="button" onclick="test(this)">
注意,setTimeout里的test中的参数obj前后的引号,在双引号内有一对单引号,这样:setTimeout("test(单引号双引号+obj+双引号单引
号)"),行了吧~每隔1000毫秒屏幕显示一次[object],传递对象成功。
———————————————————————————————————————
疑义:第4条 最终传走的是“对象”的字符串“object” 而不是初始的对象obj。只是obj的类型而已。并没有达到传递对象的作用。
可以测试一下代码: 弹出传来对象的id
复制代码 代码如下:
<body>
<div id="sssss"></div>
</body>
<script language="javascript">
obj=document.getElementById('sssss');
function test(obj)
{
alert(obj.id);
setTimeout("test('"+ obj +"')",1000);
}
test(obj)
</script>
相关推荐:
文字生成AI:开启创意写作的新纪元
ChatGPT出问题?背后的原因与解决方案,夸克ai写作生成
如何查文章AI率?全面解析AI文章检测工具及技巧
AI工具,让工作效率翻倍:AI工具教程全面解析
《*采集站:带你领略全球最全*资源的宝藏平台》,seo优化易下拉瞧瞧
SEO目的:如何通过精准优化提高网站流量与转化率,百度推广网站关键词
中文润色:提升表达的艺术,打造无懈可击的语言魅力,广告营销推广新思路论文
SEO专业怎么样?未来发展的无限潜力与职业前景,联通ai智能早教
SEO到底怎么做?揭秘从零到精通的完整SEO优化攻略,鸟瞰ai
Chatttst:开启智能沟通新时代的无限可能,上海联通ai
seo营销方法是什么,seo营销模式 ,ai山海
ChatGPT网站突然不能用了?如何快速解决这个问题,让你重新畅享AI对话!,ai新建多个画板
SEO调整,助力网站流量爆发式增长!,江都seo优化排名
SEO优化工具优势:提升网站排名,带来流量和转化的秘密武器,ai圆形造字
SEO短视:为何眼前的成效不能成为长久的策略?,网站上线seo优化
为什么要做seo si,为什么要做* ,ai里面怎么扣二维码
SEO功能:助力网站流量提升与品牌曝光,天津公司网站建设与维护
SEO职位:数字营销的核心,开启职业新高峰,汕尾网站建设推广厂商
SEO架构:提升网站流量的核心策略,东营南江全平台营销推广
SEO通过-如何通过SEO优化让你的业务在搜索引擎中脱颖而出,保定网站建设推广专家
好用的AI写作软件,让创作更高效
为什么选择老域名注册,打造品牌价值的秘密武器,网站建设服务费用多少
什么是seo快排,seo快排方案 ,ai剪图形
ChatGPT为什么打不开?背后原因与解决方案,慧ai写作
ChatGPT界面看不到用户:隐秘的互动方式与智慧的背后,AI和UR
个性化广告:新时代营销的秘密武器,建设经营性网站怎么记账
什么是seo网络推广,seo网络推广技术 ,ai写真官方
什么是seo行业,seo是什么职业做什么的 ,ai标题字体效果
ChatGPTWindows版本:让AI助手成为你的工作与生活得力助手,Ai相减变形
AI撰写工具的无限可能,让内容创作更高效、更精彩!
AI免费生成文章的软件:轻松创作的秘密武器
seo软文有什么作用,seo文案是什么 ,斐乐Ai测评问题
ChatGPT打开后空白:如何解决这个困扰并高效使用AI助手,ai四声怎么写
打造内容创作新时代:有言AI生成助力创作者释放灵感
用AI写一篇文章,如何提升你的写作效率与创意
常用AI工具,高效智能生活
AI缩短短文-提升创作效率,写作新体验,光速写作业ai写作app
什么是seo反连接,网站反链多好还是少好 ,网易ai产品
seo需要保持什么心态,seo的要求 ,ai83562
ChapGPT免费爬墙,轻松访问全球互联网资源!,蜜桃ai插画
ChatGPT登录界面都不显示了?可能是这些原因导致的!,上海小学ai智能课
Goanno跨级借鉴:推动创新与提升效率的秘密武器,崇明区智能ai艾灸费用
从零到一:网站历史的演变与未来趋势,肇庆市国外网站建设平台
SEO武汉:如何提升武汉地区网站的搜索引擎排名,景区网站建设费用
《“查看更多”背后的秘密:让你的人生更加丰富多彩!》,宁安公司网站建设
seo站内关键词优化,seo关键词优化经验技巧 ,ai 优点
SEO妍:搜索引擎优化的艺术,轻松打造网络营销新未来,辽宁网站建设贵不贵
SEO无限:如何利用SEO技术实现网站流量爆发?,网站建设总监
怎么查一篇文章是不是AI写的?你需要这几个关键方法!
seo适合什么行业,seo适合的行业 ,在ai如何矢量化