![](/img/trans.png)
[英]Will document.referer always contain a value if a website is within a frame / iframe?
[英]How to store multiple document.referer value in sessionStorage?
如何在sessionStorage中存储多个document.referer值?
例如:
您访问www.stackoverflow.com
->当前会话存储(值)是使用JS 文档的 www.stackoverflow.com
->然后单击stackoverflow.com上的链接之一,例如,单击stackoverflow问题页面www.stackoverflow.com/questions 。 您当前的sessionStorage现在是www.stackoverflow.com/questions
-> ,然后单击单个问题链接之一www.stackoverflow.com/questions/howtofixthis/
我们如何将之前的document.referer值存储在sessionStorage中,可在stackoverflow.com/questions/howtofixthis/
的第四页示例中访问,您可以在当前页面中单击链接为www.stackoverflow.com/user/iamcoder
一个用户,然后单击sessionStorage值应可访问,值为:
第一个原始值= www.stackoverflow.com
第二届www.stackoverflow.com/questions
第三届www.stackoverflow.com/questions.com/howtofixthis/
第四届www.stackoverflow.com/user/iamcoder
使用sessionStorage的目的是将访问的页面URL存储在当前会话中,并可通过多个外部页面进行访问。
到目前为止,我提出了这段代码,但没有在源中存储以前的链接。
<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>
您需要读取会话存储中的当前值并追加新值。
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.