Javascript 实现window.history到iframe

Javascript 实现window.history到iframe,javascript,html,jquery,Javascript,Html,Jquery,我有导航菜单,基于菜单的点击,我在iframe标签的src属性中加载相应的页面url,并且我有两个后退和前进按钮。点击它,我需要分别向前和向后。在这种情况下,我不能使用history.back(),因为我不是将url推送到location对象,而是更改iframe的src attr。我附上代码片段作为参考,分享你的想法 <button>prev</button> <button>next</button> <nav> <ul&g

我有导航菜单,基于菜单的点击,我在iframe标签的src属性中加载相应的页面url,并且我有两个后退和前进按钮。点击它,我需要分别向前和向后。在这种情况下,我不能使用history.back(),因为我不是将url推送到location对象,而是更改iframe的src attr。我附上代码片段作为参考,分享你的想法

<button>prev</button>
<button>next</button>
<nav>
 <ul>
  <li><a href="page 1 url">page 1</a></li>
  <li><a href="page 2 url">page 2</a></li>
  <li><a href="page 3 url">page 3</a></li>
 </ul>
 </nav>
prev
下一个
单击菜单,我只是在ifranme标记中加载相应的页面url

<iframe src="page1 url" />


在页面加载时,我将登录到第1页url。如果我单击第2页链接,我将在iframe src attr中加载第2页url。如果用户单击prev按钮,我需要返回到第1页,反之亦然。在这里,我需要跟踪iframe url的历史记录。需要一个使用javascript的解决方案我想你可以这样做。我只是使用一个选择列表来说明功能,因为我不能在这里链接到iframe中的页面负载

let history=[];
设指针=0;
函数newPage(){
设s=document.getElementById(“页面”);
设newPage=s.value;
历史推送(newPage);
指针=history.length-1;
显示页面();
}
函数displayPage(){
如果(history.length>0){
设dp=document.getElementById(“pageselected”);
dp.innerHTML=历史记录[指针];
}
}
函数next(){
指针++;
if(指针==历史记录.length){
指针=history.length-1;
}
显示页面();
}
函数prev(){
指针--;
if(指针<0){
指针=0;
}
显示页面();
}
上一页选择的下一页:

--选择页面-- 1. 2. 3. 4. 5. 6. 7. 8. 9

您可以将他们的页面选择存储在一个数组中。然后使用
push()。如果我使用pop(),我将丢失历史记录,无法让用户前进如果您使用
pop()
一次删除一个页面-如果他们单击
next
您只需
push()
他们的新选择。如果您想查看完整的历史记录,可以将他们的选择保留在数组中(即,不要使用
pop()
),并使用索引指针(变量)以当前、下一个和上一个选择为目标。因此,他们进入的任何新页面,索引指针都将指向数组中的最后一项。如果它们返回,则将指针向后移动一个。如果他们往前走,你就往上走一步。如果它们完全转到一个新页面,您将
将其推到数组上,并将指针移到该页面。