Javascript 将链接名存储在多个页面上的js变量html中
我实际上在使用css、html和js 我有6个类别页面(例如category1、category2、category3等)指向同一页面(例如fixed),而这些页面指向其他3个页面(例如Endpage1、Endpage2、Endpage3) 我添加了导航栏,以帮助用户在网站上不会迷路 导航栏的结构如下所示:Javascript 将链接名存储在多个页面上的js变量html中,javascript,html,css,Javascript,Html,Css,我实际上在使用css、html和js 我有6个类别页面(例如category1、category2、category3等)指向同一页面(例如fixed),而这些页面指向其他3个页面(例如Endpage1、Endpage2、Endpage3) 我添加了导航栏,以帮助用户在网站上不会迷路 导航栏的结构如下所示: Category > fixpage > Endpage e.g.)[(Category1 >>> fixpage >>> End
Category > fixpage > Endpage
e.g.)[(Category1 >>> fixpage >>> Endpage3]
当我在分类页面时,它只显示
category1 >>>
当我点击链接时,我进入fixpage并显示导航栏
<a href="#"> category1 <a> >>> Fixpage
当我想从Endpage返回到Fixpage时,变量也丢失了,如图所示
undefined >>> Fixpage
我可以做些什么吗?还是最好切换到cookies/session?您可以传递一个更复杂的值作为页面查询参数来处理一系列父页面
?page=category1/Fixpage
下面是我的意思,从你的小提琴链接中提取一些代码。将qs.page设置为像URL路径一样读取,然后buildPageStr函数将在链接HTML中构建显示
function fillLink()
{
qs = getQueryParams(document.location.search);
alert(qs.page);
var pageStr = buildPageStr(qs.page);
document.getElementById("backLink").href="c:/sito2/risorse/prove/" + qs.page;
document.getElementById("backLink").innerHTML = pageStr;
}
//Removes the '/' and places ' >>> ' between each page name
function buildPageStr(tokens) {
if(tokens) {
return tokens.split(/\//).join(' >>> ');
}
return "";
}
仅回答标题问题,无法在多个页面上用JavaScript存储值。JS上下文在每个页面视图上被清除和重建。因此,您实际上提出了一个更实际的问题,即如何维护状态,或者更简单地说,如何在没有服务器端会话数据的情况下管理多个页面上的面包屑 因为您已经从查询字符串中提取了一个页面,所以在查询字符串中构建整个面包屑应该不会太困难 比如:
?pages=Startpage.Fixpage.Endpage
将在URL中为您提供完整的面包屑路径。然后,不再直接显示值,而是将其拆分回页面
var pages = qs.page.split('.');
当然,你可以用cookies来代替,但你也会遇到同样的问题。当用户从一页导航到另一页时,您需要管理整个面包屑列表。通过将页面数组“序列化”为一个字符串,然后在另一端将其拆分回来,就很容易做到这一点。使用查询字符串还可以根据URL生成相同的面包屑,而不管用户的Cookie状态如何。我建议使用Cookie
document.cookie=“firstpage=cat1”;var cookie=document.cookie代码>你可以看一下。如果我使用cookie而用户不接受cookie,我的整个网页将无法使用?
var pages = qs.page.split('.');