Html用iframe做了个首页框架,框架中做了个悬浮div按钮,用于返回上一页,然后把整个网页项目全部放在这个框架下运行,这样这个悬浮div按钮就能出现在所有的页面下,但情况是,不管打开了多少层网页点击这个div,网页就直接返回到首页,不能一步一步的返回,这个有没有办法解决?
没有遇到过这种需求,说一下我的思考
1、为什么不直接在你的网页项目上加back按钮。
2、如果你不想或者无法在网页上加back按钮,那就只能通过iframe通信。但涉及通信,肯定还是要改网页项目的代码。
3、如果可以修改网页代码,那第一步的实现方式远比第二步的通信更加便捷以及安全
4、如果你不能修改网页代码,那你可能需要找一下有没有iframe相关的api,比如可以获取到嵌入的网页的网址历史堆栈,比如iframe嵌入的网址变化的回调诸如此类的api,目的是为了可以让你手动控制iframe的src。但我感觉可能不会有这种api,因为他显得不太安全。
针对问题描述的解决方案并不适用于该问题,因此需要针对该问题进行解决方案的提供。
针对悬浮div按钮在iframe中无法返回上一页的问题,可以通过以下步骤进行解决:
1.在iframe中嵌入一个透明的div,用于捕获点击事件。
<div id="capture-div" style="position:absolute; top:0; left: 0; width:100%; height:100%; z-index:1;"></div>
<iframe src="your-url" width="100%" height="100%" frameborder="0"></iframe>
2.在捕获div中添加点击事件,并判断是否为返回上一页的按钮。
var captureDiv = document.getElementById('capture-div');
captureDiv.onclick = function(e) {
// 判断点击的是否为返回上一页的按钮
var target = e.target || e.srcElement;
if (target.id === 'back-btn') {
window.history.go(-1); // 返回上一页
}
}
3.在iframe中的每个页面中添加一个返回上一页的按钮,并且为其添加一个固定的id。
<button id="back-btn">返回上一页</button>
这样就可以解决悬浮div按钮在iframe中无法返回上一页的问题了。