Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将链接名存储在多个页面上的js变量html中_Javascript_Html_Css - Fatal编程技术网

Javascript 将链接名存储在多个页面上的js变量html中

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

我实际上在使用css、html和js

我有6个类别页面(例如category1、category2、category3等)指向同一页面(例如fixed),而这些页面指向其他3个页面(例如Endpage1、Endpage2、Endpage3)

我添加了导航栏,以帮助用户在网站上不会迷路

导航栏的结构如下所示:

 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('.');