Re: [問題] 是否可以使變數跟著視窗傳遞?
※ 引述《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)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):