javascript计时器初始化,获取框架属性等问题

laidezhong 2008-09-09 10:05:49
1. 计时器初始化.
现有一个function message(msg)如下:

function message(msg){
$("ul#msgstr").innerHTML+="<li>"+msg+"</li>";
$("div#msg").show();
var t_msg=setTimeout("msgclose()",10000);
}

function msgclose()是简单的隐藏div的操作.
现在有如下问题
当别处调用message("Message 1"); 能顺利显示10秒,然后隐藏.
但在Message 1显示的10秒钟内,如又调用message("Message 2");并不能重新开始记时.
如激活message 1的时间为16:00:10,激活message 2的时间为16:00:14 秒.
程序将在16:00:11的时候激活msgclose();
而我希望能在16:00:25秒的时候激活msgclose();
望赐教.

问题2.获取框架属性等(跨域且无被框架页编辑权限).

1.html 有如下内容:

<iframe id="if1" src="http://www.baidu.com"></iframe>
a.如何获取被框架页的Title
b.当被框架页有操作后.如用户点击了一个a href=zhidao.baidu.com的链接后,如何获取框架页的location.href.而不是iframe 的src
c.如何监测被框架页上的用户点击,激活问题b中的function.不能使用timer.
...全文
129 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2008-09-10
  • 打赏
  • 举报
回复
<html>
<head></head>
<body>
<div id="divMsg">这个是要隐藏的对象</div>
<input type="button" value="启动计时器" onclick="StartTimer()"/>
<script language="JavaScript">
var timer=null;//定时器变量
function StartTimer(){
if(timer){//上次即使未完成,干掉它
clearTimeout(timer);
timer=null;
}
timer=setTimeout(msgclose,5000);//重新设置定时器
}
function msgclose(){document.getElementById("divMsg").style.display="none";}
</script>
</body></html>
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 laidezhong 的回复:]
引用 4 楼 chinmo 的回复:
在msgclose()里加上:
var t_msg1=setTimeout("message(2)",4000);


很明显 我可能还会有message("3"),message("4"),而时间间隔也不一定是4秒.

我想达到的目的是当最后一次触发messgae的时候,计时器重新从0开始记时.计时器到10的时候触发msgclose()
[/Quote]

从0触发不外乎就是当最后一次触发messgae的时候清除计时器,需要根据你自己实际程序来编写一个控制当最后一次触发messgae的时候清除计时器
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 laidezhong 的回复:]
引用 4 楼 chinmo 的回复:
在msgclose()里加上:
var t_msg1=setTimeout("message(2)",4000);


很明显 我可能还会有message("3"),message("4"),而时间间隔也不一定是4秒.

我想达到的目的是当最后一次触发messgae的时候,计时器重新从0开始记时.计时器到10的时候触发msgclose()
[/Quote]

哪你不懂吧message(2)这个里面的变为一个变量参数吗???
laidezhong 2008-09-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chinmo 的回复:]
在msgclose()里加上:
var t_msg1=setTimeout("message(2)",4000);
[/Quote]

很明显 我可能还会有message("3"),message("4"),而时间间隔也不一定是4秒.

我想达到的目的是当最后一次触发messgae的时候,计时器重新从0开始记时.计时器到10的时候触发msgclose()
laidezhong 2008-09-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 showbo 的回复:]
1
你把原来的计时器干掉

2
跨域没搞头,获取不到的
[/Quote]
能详细点吗? 我在function message()中 将计时器清除.但是还是没有作用.message层还是在第一次点击后10秒消失.而并不是第二次点击后的10秒.

laidezhong 2008-09-09
  • 打赏
  • 举报
回复
问题1中 程序激活msgclose()的时间应为16:00:21.写错,不好意思.
  • 打赏
  • 举报
回复
不知道是不是这个意思
  • 打赏
  • 举报
回复
在msgclose()里加上:
var t_msg1=setTimeout("message(2)",4000);
  • 打赏
  • 举报
回复
1.不明白说的意思
2.跨域没得搞头,获取不到
Go 旅城通票 2008-09-09
  • 打赏
  • 举报
回复
1
你把原来的计时器干掉

2
跨域没搞头,获取不到的

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧