如何在sessionStorage中存储多个document.referer值?
例如:
您访问 www.stackoverflow.com
- > 当前sessionStorage(value)使用JS document.referer
www.stackoverflow.com
- > 然后您点击stackoverflow.com上的链接之一,例如您点击stackoverflow问题
页面 www.stackoverflow.com/questions 。您当前的sessionStorage现在是www.stackoverflow.com/questions
- > ,然后点击其中一个问题链接www.stackoverflow.com/questions/howtofixthis/
我们如何在sessionStorage中存储以前的document.referer值,这些值可在第四页中访问
stackoverflow.com/questions/howtofixthis/
中的一个例子,您点击了一个链接为www.stackoverflow.com/user/iamcoder
的用户
在当前页面中,之前的sessionStorage值应该是可访问的,值为:
第一个原点值= www.stackoverflow.com
第二www.stackoverflow.com/questions
第3 www.stackoverflow.com/questions.com/howtofixthis/
第4 www.stackoverflow.com/user/iamcoder
使用sessionStorage的目的是将访问过的网页存储在当前会话中,并可通过多个外部页面访问。
到目前为止,我提出了这段代码,但没有存储以前的链接。
<script>
var s_origin = document.referrer;
var on_session = sessionStorage.setItem('origin', s_origin)
var data = sessionStorage.getItem('origin');
console.log('session origin ' + data)
</script>
答案 0 :(得分:0)
您需要读取会话存储中的当前值并附加新值。
function appendReferrer(value){
if(value){
var referrers = JSON.parse(sessionStorage.getItem('origin') || null) || [];
referrers.push(value);
sessionStorage.setItem('origin',JSON.stringify(referrers));
}
}
function getReferrers(){
return JSON.parse(sessionStorage.getItem('origin')) || [];
}
用法:
//Append a new Item
appendReferrer("stackoverflow.com");
//Read all referrers
var referrers = getReferrers();
console.log(referrers);