我有3个html页面
第一页=主页,第二页和第三页有2个锚点(链接)
第二页= 1锚到第三页
所以..第一页和第二页都有一个锚到第三页..
第三页的内容包含动态内容。但是,内容与上一页的内容不同。
所以我有一个非常简单的html脚本来加载动态html:
<div class="thumbnail-panel row small-unstack">
<script>insertModels();</script>
</div>
那么如何根据以前的位置更改insertModels的结果呢?
答案 0 :(得分:1)
您可以使用document.referrer
查找用户访问您所在页面的网址。因此,请将其作为带有insertModels
的网址的参数:
<script>insertModels(document.referrer);</script>
然后使用if-statement
修改函数:
insertModels = function(loc) {
if( loc === "someCertainUrlHere" ) {
// Code for spesific last location
} else {
// normal code
}
}
答案 1 :(得分:0)
我的假设是您的设置如下:
Page 1:
foo
Page 2:
bar
Page 3: from page 1:
foo bar
Page 3: from page 2:
bar foo
如果是这种情况,那么你可以通过以下几种方式做到这一点。
首先,你可以为每个第3页变体创建一个.html页面,它实际上与你现在正在进行的页面交付方式一致。
Page 3: from page 1:
looks like Page 3: foo bar
Page 4: from page 2:
looks like Page 3: bar foo
或者你可以有一个shell模板,无论如何加载,但包含它自己的脚本,检查(比如说url)参数然后加载页面的辅助内容
Page 3: from page 1 ( url ?page1 )
if ( window.location.indexOf('page1') > -1 ) { // foo bar }
Page 3: from page 2 ( url ?page2 )
if ( window.location.indexOf('page2') > -1 ) { // bar foo }
您的第三个选项是会话存储
如果你看一下这里的文档: https://developer.mozilla.org/en/docs/Web/API/Window/sessionStorage
您可以在浏览器中设置变量并在需要时再次检查它们,您可以使用与第二个示例类似的方式:
Page 1:
sessionStorage.setItem("page", "1");
Page 2:
sessionStorage.setItem("page", "2");
Page 3:
if (parseInt(sessionStorage.getItem("page")) === 1) {
// foo bar
}
Page 3:
if (parseInt(sessionStorage.getItem("page")) === 2) {
// bar foo
}
显然这都是伪代码,但它应该有意义。如果您包含更多项目的结构和设置,我可以扩展我的答案以更准确地适应您的场景。