【发布时间】:2016-10-20 05:04:18
【问题描述】:
我有三个不同的 html 文件(page1.html、page2.html、page3.html),每个文件都包含指向第四个 html 文件 (glossary.html) 中的相同目标。
由于技术原因,我不能使用 history.go(-1) 或其他特定于浏览器的函数,但我可以使用 JavaScript 和 JavaScript 库,例如JQuery 和 LocalStorage。
用 JavaScript 模拟 history.go(-1) 功能的最佳方法是什么?
技术细节如下:
page1.html 包含以下链接:
<a id="page1" href="glossary.html#def1" class="footnote">1</a>
page2.html 包含以下链接:
<a id="page2" href="glossary.html#def1" class="footnote">1</a>
page3.html 包含以下链接:
<a id="page3" href="glossary.html#def1" class="footnote">1</a>
glossary.html 包含以下链接:
<a id="fn1" href="#">↵ Back </a>Term 1: Definition of term one.
即,脚本应执行以下操作:
检索调用 html 页面的 id(page1、page2 或 page3)并将其保存为 LocalStorage 项或以另一种合适的持久方式。
当用户点击↵Go back链接时,glossary.html中定义的href需要更新,使其指向page1.html#page1、page2.html#page2 或 page3.html#page3,具体取决于单击词汇表链接的 html 页面。
解决这个问题最简单的方法是什么?
【问题讨论】:
-
“由于技术原因,我不能使用 history.go(-1) 或其他浏览器特定的功能” 我们需要了解更多关于该限制的信息,因为它没有多大意义。几乎任何答案都将使用“特定于浏览器的功能”(或对象),例如
location。请注意,您的“应该执行以下操作”使用特定于浏览器的内容,例如本地存储。 -
另一种可能的解决方案是在您的 url 或哈希属性中插入查询字符串参数并在页面加载时对其进行解析。即 /glosary.html?back_url=...
-
我唯一能想到的就是将路线存储在本地存储中并在它们之间导航!但正如@T.J.Crowder 所说,这是另一个特定于浏览器的事情
-
我不同意这个问题的 HOLD 状态。在以上 3 个 cmets 中,有 2 个喜欢 @T.J. Crowder (450 894 rep. points) 和 Amin Jafari (4 639 rep. points) 谈论
localStorage。 问题很清楚。 -
@LouysPatriceBessette:尝试用雷区回答问题通常是浪费时间(OP 无法使用但他们没有告诉我们的东西)。 OP 可以回来,添加必要的信息,然后重新打开问题。或者删除问题并发布一个包含所有必要信息的问题。然后我们可以提供帮助。这就是这里的工作方式。我已经投票决定重新开放,因为他们说他们可以使用 jQuery,并且有一个 jQuery+localStorage 解决方案,所以希望能够在矿井之间引导...... :-)
标签: javascript jquery html dynamic href