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>
相关推荐
姑苏洛言13 分钟前
扫码点餐小程序产品需求分析与功能梳理
前端·javascript·后端
Freedom风间17 分钟前
前端必学-完美组件封装原则
前端·javascript·设计模式
江城开朗的豌豆21 分钟前
React表单控制秘籍:受控组件这样玩就对了!
前端·javascript·react.js
一枚前端小能手37 分钟前
📋 代码片段管理大师 - 5个让你的代码复用率翻倍的管理技巧
前端·javascript
国家不保护废物43 分钟前
Web Worker 多线程魔法:告别卡顿,轻松实现图片压缩!😎
前端·javascript·面试
接着奏乐接着舞。1 小时前
如何在Vue中使用拓扑图功能
前端·javascript·vue.js
阳先森1 小时前
Vue3 Proxy 为何不直接返回target[key],选用Reflect
前端·vue.js
ONE_Gua2 小时前
魔改chromium源码——解除 iframe 的同源策略
前端·后端·浏览器
用户1512905452202 小时前
mysql8的collate问题和修改
前端
用户1512905452202 小时前
MySQL的sql_mode模式说明及设置
前端·后端