2017-02-02 25 views
2

我想在本地服務器上使用sessionStorage在不同選項卡之間傳遞一些數據。我嘗試了一些方法,但不能成功。任何人都請幫助我。會話存儲不能在不同的選項卡上工作

這是我設置我的數據的一個文件。

if (typeof(Storage) !== "undefined") { 
    var loggedInUserId = loggedInId; 
    console.log(loggedInUserId); 
    sessionStorage.clear(); 
    sessionStorage.setItem("loggedin_id", loggedInUserId); 
    console.log(sessionStorage); 
} 

,我試圖來從本地驅動器上的另一個項目的其他文件中的數據

var companyId = sessionStorage.getItem("loggedin_id"); 

的問題是,數據在瀏覽器的設置,但是當我檢查我的其他項目選項卡的存儲保持空白。

note:我的兩個項目是在兩個驅動器,不知道它是否有區別。請任何人給我一些方法來解決它。謝謝 。

+0

我的第一個猜測是兩個標籤不會共享同一個會話。你可以使用localStorage嗎? – Halcyon

+0

'在我的本地服務器上' - 所以... http服務器對不對? –

+0

你是否指「兩個驅動器」存儲在兩個不同路徑上的靜態html文件?如果是這樣,「域」也是不同的,不會共享會話。 –

回答

0

Fady Sadek的回答是正確的做法,如果在獲取該值之前localStorage可用,並且在嘗試獲取數據之前實際保存了數據,我將添加一個檢查。

JS Fiddle

function saveText() { 
    if (typeof(Storage) !== "undefined") { 
     localStorage.setItem("myData", "Hello, Rajesh!"); 
     alert('Data saved.'); 
    } else { 
     alert('Local storage not available'); 
    } 
} 

function getText() { 
    if (typeof(Storage) !== "undefined" && typeof(localStorage.getItem('myData')) !== "undefined") { 
     alert(localStorage.getItem('myData')); 
    } else { 
     alert('Local storage not available or the data is not saved.'); 
    } 
} 

牢記scopes of the storage,你只能標籤/窗口之間的同一子和/或域名中使用它。

+0

非常感謝你#stanimir ..它的工作現在.. –

2

會話存儲不是執行任務的工具,你應該使用本地存儲 對於sessionStorage的,變化是每個窗口只提供(或標籤在Chrome和Firefox瀏覽器)

你的情況

你想要的數據在整個不同的標籤進行共享,以便你可以做這樣的事情:

if (typeof(Storage) !== "undefined") { 
    localStorage.setItem("firstname", "fady"); 
} else { 
    // Sorry! No Web Storage support.. 
} 

,然後你可以檢索它只是你與你的會話存儲也一樣

var firstname = localStorage.getItem("firstname"); 
+0

我已經做了確切的事情。首先,我嘗試使用localStorage,當它不起作用時,我切換到sessionStorage。但仍然沒有工作。其實我對getItem的東西感到困惑。我應該把var firstname = localStorage.getItem(「firstname」);到不同的項目文件,我想要獲取數據.. ?? –

+0

是的這樣你可以在這裏檢索數據,你可以找到一個YouTube視頻,解釋如何做到這一點https://www.youtube.com/watch?v=0CDi-CgflN4 –

+0

謝謝你的rply,但我檢查它正確的方式。如果我在同一個文件中使用「setItem」和「getItem」,它完美的工作,但不能在其他標籤上工作。如果我打開另一個選項卡並在我的控制檯上使用localStorage,它將返回0長度爲null。請幫忙。我正在使用chrome。 –