主题:  想做一个只弹出一次的窗口,如何做????

macshow

职务:普通成员
等级:1
金币:0.0
发贴:10
注册:2003/5/11 20:54:53
#12003/5/11 21:00:29

我想做一个只弹出一次的窗口,以后页面即使刷新也不会再弹出这个窗口,怎么实现????


望各位大虾指点一二???



{ 在指尖上绽放的花朵 }

职务:普通成员
等级:5
金币:14.0
发贴:3209
注册:2002/7/25 21:24:11
#22003/5/11 21:54:48
试试看使用cookies控制?

提供一个算法,在弹出窗口时检测本站cookie,

如果存在,则skip弹出动作,否则创建cookie,弹窗口。

相关函数~~
cookie的读取~ var cookiename=documents.cookie;
cookie的写入~ documents.cookie="name="+form.cookie.value+";expires="+month;



彩云传说

职务:普通成员
等级:2
金币:10.0
发贴:618
注册:2001/5/27 21:26:20
#32003/5/12 0:37:54
<body>和</body>之间

<SCRIPT LANGUAGE="JavaScript">
var expDays = 1; // 设定cookie的过期天数,如果为0则每次打开仍会弹出

var page = "http://www.5dmedia.com";

var windowprops = "width=650,height=500,location=yes,toolbar=no,menubar=no,scrollbars=yes,resizable=yes"; //打开窗口的大小及属性设定

function GetCookie (name) { 

var arg = name + "="; 

var alen = arg.length; 

var clen = document.cookie.length; 

var i = 0; 

while (i < clen) { 

var j = i + alen; 

if (document.cookie.substring(i, j) == arg) 

return getCookieVal (j); 

i = document.cookie.indexOf(" ", i) + 1; 

if (i == 0) break; 

} 

return null;

}

function SetCookie (name, value) { 

var argv = SetCookie.arguments; 

var argc = SetCookie.arguments.length; 

var expires = (argc > 2) ? argv[2] : null; 

var path = (argc > 3) ? argv[3] : null; 

var domain = (argc > 4) ? argv[4] : null; 

var secure = (argc > 5) ? argv[5] : false; 

document.cookie = name + "=" + escape (value) + 

((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 

((path == null) ? "" : ("; path=" + path)) + 

((domain == null) ? "" : ("; domain=" + domain)) + 

((secure == true) ? "; secure" : "");

}

function DeleteCookie (name) { 

var exp = new Date(); 

exp.setTime (exp.getTime() - 1); 

var cval = GetCookie (name); 

document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();

}

var exp = new Date(); 

exp.setTime(exp.getTime() + (expDays*24*60*60*1000));

function amt(){

var count = GetCookie('count')

if(count == null) {

SetCookie('count','1')

return 1

}

else {

var newcount = parseInt(count) + 1;

DeleteCookie('count')

SetCookie('count',newcount,exp)

return count

}

}

function getCookieVal(offset) {

var endstr = document.cookie.indexOf (";", offset);

if (endstr == -1)

endstr = document.cookie.length;

return unescape(document.cookie.substring(offset, endstr));

}



function checkCount() {

var count = GetCookie('count');

if (count == null) {

count=1;

SetCookie('count', count, exp);

window.open("as.htm", 'ad' ,windowprops); //打开窗口的页面URL及名称

}

else {

count++;

SetCookie('count', count, exp);

}

}

window.onload=checkCount

</script>

编辑历史:[这消息被达闻西编辑过(编辑时间2003-05-12 00:42:57)]


{ 在指尖上绽放的花朵 }

职务:普通成员
等级:5
金币:14.0
发贴:3209
注册:2002/7/25 21:24:11
#42003/5/12 11:45:52
Ft...

昨天刚被声讨……

说不应该写太多程序…… 应该以算法为主……

算了,不多说了……



小小菜皮

职务:普通成员
等级:1
金币:1.0
发贴:180
注册:2002/4/1 17:44:38
#52003/5/12 12:05:47
行者说得可不好。
对于我们这些菜鸟而说,最重要的是能迅速解决问题。看到例子拿到已经写好的代码。只改少量一部份。

不是所有人都对代码有了解的,我们渴望得到的是举例,对于你们这些高手而言,有些问题的回答太过简单了。

比如,有人问,如何在网页中再插入一个页面,有的高手就回答:
"iframe"就完事了,怎么用,语法是什么都不告诉别人,你说这样的回答问的人能接受吗?

又如行者,以上例,你光告诉一个可以用cookie,然后帖个相关函数,不编一个范例
,只要问的人基础稍差,比如说是我,那还是一头雾水。

像闻西兄这样每回答一个问题都有举例的,才是真正能让我们这些菜鸟感到温暖的。

得罪了

编辑历史:[这消息被小小菜皮编辑过(编辑时间2003-05-12 12:16:35)]


{ 在指尖上绽放的花朵 }

职务:普通成员
等级:5
金币:14.0
发贴:3209
注册:2002/7/25 21:24:11
#62003/5/12 12:20:50
呵呵~ 没关系的~~ 有看法说出来就是~

最可怕的是,对你有看法,然后憋着不说,让人很难受……

看到我之前的帖子了吗? 任何事情都完整的写出来……

于是被声讨,说助长懒人习气……

So 这次尝试给人以渔……



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
#72003/5/12 13:39:22
回答问题最主要还是要说明原理~否则直接给代码你也就直接用了~下次要用还要再问.


论坛是一个学习的地方,希望大家都可以能学到点东西,包括斑竹和高手.要正确看待代码



i800

职务:普通成员
等级:1
金币:0.0
发贴:27
注册:2003/5/8 14:14:45
#82003/5/12 14:11:21
我是来学习的,属于半瓶水那种水平,

从你们的代码中能学到不少东西,如果没有代码我的确什么都学不到啊?



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
#92003/5/12 15:49:08
并没有说不允许贴代码,主要看各人对于代码是一个什么态度.
不要只是把别人给的代码复制粘贴到你的网页中去,或者只是简单的修改一些内容,希望大家可以话点时间去看看代码.看不懂也没有关系,看多了也就会了.



{ 在指尖上绽放的花朵 }

职务:普通成员
等级:5
金币:14.0
发贴:3209
注册:2002/7/25 21:24:11
#102003/5/12 16:52:55
sigh~ 下次还是贴有些说明的代码好了~~



不是高手

职务:普通成员
等级:3
金币:5.0
发贴:1352
注册:2002/8/23 2:27:18
#112003/5/12 19:32:43
对,代码的关键处做些注释,自己清楚,也方便别人察看。



{ 在指尖上绽放的花朵 }

职务:普通成员
等级:5
金币:14.0
发贴:3209
注册:2002/7/25 21:24:11
#122003/5/12 21:12:21
已经这样做了……

结果弄的自己很累……

并且,对于不是科班出身的行者来说,

在写说明的时候…… 感觉那么的别扭……



i800

职务:普通成员
等级:1
金币:0.0
发贴:27
注册:2003/5/8 14:14:45
#132003/5/12 21:55:01
allinhands在上个帖子中说
引用:
并没有说不允许贴代码,主要看各人对于代码是一个什么态度.
不要只是把别人给的代码复制粘贴到你的网页中去,或者只是简单的修改一些内容,希望大家可以话点时间去看看代码.看不懂也没有关系,看多了也就会了.


我看多了也明白了不少,我看我还是多研究研究的好:)

编辑历史:[这消息被i800编辑过(编辑时间2003-05-12 22:01:05)]


缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
#142003/5/12 23:30:58
偶也是.写个代码还行,教我写原理注释什么的可难.我自己也搞不清楚一些东西的.......能写就写吧



彩云传说

职务:普通成员
等级:2
金币:10.0
发贴:618
注册:2001/5/27 21:26:20
#152003/5/12 23:45:09

晕!
我算是一石激起千层浪了。
不过我同意aquarior的,在关键的地方做注释就进了。
要每一条说明,且不说工作量的问题,有些代码很难用合理的语言说明。
并且如果所帖的代码每条都要做注释的话,不但打击积极性,而且效率极低,也许等你注释完后,别人的答案都已经帖出来了.