作者sk1765 (鼎玉铉)
看板Ajax
标题Re: [问题] 是否可以使变数跟着视窗传递?
时间Mon Jul 19 02:29:11 2010
※ 引述《magrady (元元)》之铭言:
: 大家好,
: 请问一下
: 是否可以设定javascript变数,若在同一个视窗浏览(点超连结 F5...等等),
: 则其变数是可以互相传递的?
: 例如 使用者开了两个视窗 A, B 都开启了 1.html
: 而 1.html 有功能: 输入资料 读入变数 id 中
: 使用者在视窗A 输入123 在视窗B 输入 456
: 接着两个视窗均由 1.html 连结到 2.html
: 而让两个视窗的 2.html 均能抓到使用者输入的资料 (A抓到123, B抓到456)
: 想过用Cookie 但无法判定是否同视窗 (不知道有无window.id唯一编号之类的东西)
: 而用网址传递应该可行,但过於杂乱
: 不知道有没有其他方法可以达成此功能,谢谢大家!
: (抱歉,若语意不清请见谅......)
使用者载入新的页面 老页面会被丢弃 而新页面会被载入到同一window物件
javascript的全域物件会被彻底清除,所有的变数和函式都会被销毁,
除了window.closed属性仍然存在
若要在不同页面中延续资料有三种做法
1.在cookie中储存资料
2.把资料储存在另外一个window物件中 ,在第一页用
xx=window.open('pop.html','popup');
因为换到第二页时,pop.html的快显示窗他的window.opener仍然指向主视窗
因此在快显示窗的javascript可以再回传给主视窗 藉以保存资料
3.将你的资料发送给伺服器 存在资料库中 到第二页 再从资料库捞出来
(这是最保险的做法)
两个视窗同时开同样的页 可以同时用cookie延续不同的值到第二页
虽然两个视窗用了同样的key 读取cookie
但是没有人能够同时对两个视窗做换页的动作
只需要在正确的时机做setcookie 两者是不会互相影响的
在第一页unload的时机做setcookie
除了存form栏位的cookie另外多加一个cookie变数
判断 是否有人在换页 当有人在换页该值为true 没有时该值为false
当只有自己在换页时才能换
否则一直循环settimeout去侦测该cookie变数是否改变为false
(以上修正看法)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.59.14.24
※ 编辑: sk1765 来自: 203.70.98.177 (07/19 03:10)
※ 编辑: sk1765 来自: 203.70.98.177 (07/19 04:13)