uniapp h5项目页面中使用了iframe导致浏览器返回按键无法使用, 返回不了上一页.

uniapp h5项目页面中使用了iframe导致浏览器返回按键无法使用, 返回不了上一页.

在 UniApp 中使用 iframe 加载外部页面时,可能会遇到返回键行为不符合预期的问题。这是因为 iframe 本身可以包含多个页面的历史记录,而默认情况下,浏览器的返回键会控制 iframe 内部页面的历史记录,而不是外部页面的历史记录。

解决方案(禁用 iframe 的历史记录)

html 复制代码
<template>

  <view>

    <iframe ref="myIframe" :src="iframeSrc" frameborder="0" @load="onIframeLoad"></iframe>

  </view>

</template>


<script>

export default {

  data() {

    return {
      iframeSrc: 'http://example.com',
    };

  },

  methods: {

    onIframeLoad(event) {
	  if(this.$refs.myIframe.contentWindow){
		// 禁用 iframe 中的历史记录
		this.$refs.myIframe.contentWindow.history.pushState({}, '');
		this.$refs.myIframe.contentWindow.onpopstate = (event) => {
			event.preventDefault();
			// 跳转到上一页
			uni.switchTab({
				url: "/pages/index/index",
			});
		};
	  }
    },
  }
};

</script>
相关推荐
lyj16899711 分钟前
vue-i18n+vscode+vue 多语言使用
前端·vue.js·vscode
小白变怪兽2 小时前
一、react18+项目初始化(vite)
前端·react.js
ai小鬼头2 小时前
AIStarter如何快速部署Stable Diffusion?**新手也能轻松上手的AI绘图
前端·后端·github
shimly1234562 小时前
bash 脚本比较 100 个程序运行时间,精确到毫秒,脚本
开发语言·chrome·bash
墨菲安全3 小时前
NPM组件 betsson 等窃取主机敏感信息
前端·npm·node.js·软件供应链安全·主机信息窃取·npm组件投毒
GISer_Jing3 小时前
Monorepo+Pnpm+Turborepo
前端·javascript·ecmascript
天涯学馆3 小时前
前端开发也能用 WebAssembly?这些场景超实用!
前端·javascript·面试
我在北京coding4 小时前
TypeError: Cannot read properties of undefined (reading ‘queryComponents‘)
前端·javascript·vue.js
前端开发与ui设计的老司机4 小时前
UI前端与数字孪生结合实践探索:智慧物流的货物追踪与配送优化
前端·ui
全能打工人4 小时前
前端查询条件加密传输方案(SM2加解密)
前端·sm2前端加密