关于javascript的setInterval函数传参问题

在dreamweaver里的setInterval的函数提示是这样的:setInterval(functionName,interval,params);第一个是函数名,... 在dreamweaver里的setInterval的函数提示是这样的:setInterval(functionName,interval,params);第一个是函数名,第二个是间隔时间,第三个是传给被调用函数的参数。可是运行起来只有火狐可以,而在IE不可用,被调用函数根本接收不到传来的参数。网上有人这么写:setInterval("functionName('param')",100).这个测试在两种浏览器都可用。但是param只是个字符串,如果换成对象就不想了,会说改对象没有定义,这问题这么解决。
下面是我的代码,在IE被调用函数接收不到参数:
function some(){
var msObj = document.createElement("div");
msObj.id = "ms";
msObj.style.cssText = "position:absolute;left:"+(iWidth-w)/2+"px;top:"+(iHeight-h)/2+"px;width:0px;height:0px;background-color:#ffffff;z-index:103;border: 1px solid #999999";
document.body.appendChild(msObj);
haha=setInterval(trans,100,msObj);
}
function trans(ob){
alert(ob);//在FF里弹出“[object HTMLDivElement]”,在IE弹出“undefined”
}
展开
 我来答
百度网友2571d37bb
2016-01-06 · 知道合伙人软件行家
百度网友2571d37bb
知道合伙人软件行家
采纳数:1971 获赞数:7905
前端工程师

向TA提问 私信TA
展开全部
定义和用法
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。
由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
语法:
setInterval(code,millisec[,"lang"])
参数描述:
code    必需。要调用的函数或要执行的代码串。    
millisec    必须。周期性执行或调用 code 之间的时间间隔,以毫秒计。    
返回值:
一个可以传递给 Window.clearInterval() 从而取消对 code 的周期性执行的值。
实例
<html>
<body>

    <input type="text" id="clock" size="35" />
    <script language=javascript>
        var int=self.setInterval("clock()",50)
        function clock(){
          var t=new Date()
          document.getElementById("clock").value=t
         }
    </script>
    </form>
    <button onclick="int=window.clearInterval(int)">Stop interval</button>

</body>
</html>
百度网友a435633
2010-02-05 · TA获得超过1234个赞
知道大有可为答主
回答量:1018
采纳率:0%
帮助的人:0
展开全部
用一个匿名函数就能很好的解决这个问题:

setInterval(function(){
//这儿放要执行的代码, 参数在外面准备好
trans(msObj);
}), 100);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
panelwork
推荐于2018-03-07 · TA获得超过615个赞
知道小有建树答主
回答量:562
采纳率:0%
帮助的人:572万
展开全部
这个可以这么做

function some(){
var msObj = document.createElement("div");
msObj.id = "ms";
msObj.style.cssText = "position:absolute;left:"+(iWidth-w)/2+"px;top:"+(iHeight-h)/2+"px;width:0px;height:0px;background-color:#ffffff;z-index:103;border: 1px solid #999999";
document.body.appendChild(msObj);
haha=setInterval(function(){ trans(msObj); },100,);
}
function trans(ob){
alert(ob);//在FF里弹出“[object HTMLDivElement]”,在IE弹出“undefined”
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Loadinger
2010-02-04 · TA获得超过552个赞
知道小有建树答主
回答量:757
采纳率:100%
帮助的人:416万
展开全部
setInterval(function(){ trans(msObj); },100);
这样就可以了...IE和FF都能用..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式