Html用iframe做了个首页框架,框架中有个悬浮div按钮,用于返回上一页

Html用iframe做了个首页框架,框架中做了个悬浮div按钮,用于返回上一页,然后把整个网页项目全部放在这个框架下运行,这样这个悬浮div按钮就能出现在所有的页面下,但情况是,不管打开了多少层网页点击这个div,网页就直接返回到首页,不能一步一步的返回,这个有没有办法解决?

没有遇到过这种需求,说一下我的思考

1、为什么不直接在你的网页项目上加back按钮。
2、如果你不想或者无法在网页上加back按钮,那就只能通过iframe通信。但涉及通信,肯定还是要改网页项目的代码。
3、如果可以修改网页代码,那第一步的实现方式远比第二步的通信更加便捷以及安全
4、如果你不能修改网页代码,那你可能需要找一下有没有iframe相关的api,比如可以获取到嵌入的网页的网址历史堆栈,比如iframe嵌入的网址变化的回调诸如此类的api,目的是为了可以让你手动控制iframe的src。但我感觉可能不会有这种api,因为他显得不太安全。

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/271584
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:div拖动遇到iframe卡顿的问题解决
  • 以下回答由chatgpt基于相关博客总结生成:

    针对问题描述的解决方案并不适用于该问题,因此需要针对该问题进行解决方案的提供。

    针对悬浮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中无法返回上一页的问题了。