如何在sessionStorage中存储多个document.referer值?

时间:2016-12-02 09:08:29

标签: javascript jquery

如何在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>

1 个答案:

答案 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);