3种跳转页面方法的区别以及可能遇到的问题

1.window.open() 方法:

window.open() 方法会在浏览器中打开一个新窗口或标签页,并加载指定的 URL。
可能遇到的问题:由于浏览器的安全限制,该方法只能在用户交互事件的处理程序中使用(例如点击按钮),
不能在页面的 onload 事件中使用。同时,一些浏览器可能会屏蔽弹出窗口,或者用户设置了不允许弹出窗口,这可能会导致该方法无法正常使用。

解决:
1.https://www.cnblogs.com/angel648/p/17348734.html
2.在使用 window.open() 方法时,可以加上第三个参数,指定新窗口的属性(例如大小、位置、工具栏等),
这样可以提升用户对弹出窗口的信任度。此外,可以通过在浏览器控制台中执行 window.open() 方法来测试该方法是否可以正常使用。
苹果手机使用window.open函数打开新窗口可能会遇到一些问题。这是因为在Safari浏览器中,对于某些情况下的window.open调用进行了限制,以防止恶意行为和滥用。
为了在iOS设备上打开页面:
1.可以使用window.location.href
2.使用链接元素的目标属性:可以在HTML中创建一个链接元素,并设置target属性为_blank,这会告诉浏览器在新窗口中打开链接。例如:<a href="https://www.example.com" target="_blank">打开链接</a>

 

2.window.location.href 属性:

1.通过修改 window.location.href 属性的值可以在当前窗口中打开一个新的 URL。
2.window.location.href 是浏览器端用于改变当前页面 URL 以实现页面跳转的方法。
3.使用 window.location.href 进行页面跳转时,会导致整个页面重新加载,当前页面的状态会丢失,相当于进行了新页面的加载。

 

3.uni-app 的页面导航方法:

1.uni-app 提供了跨平台的页面导航方法,可以在小程序、H5 等多个平台上统一实现页面跳转。
2.uni.navigateTo 是uni-app框架中用于页面跳转的方法,它可以实现在同一级页面栈内进行页面跳转,类似于原生应用的页面切换效果。
3.使用 uni.navigateTo进行页面跳转时,会将目标页面压入页面栈,当前页面会被隐藏,用户可以通过返回按钮返回上一个页面。

 

使用window.open() 或者window.location.href 打开页面后,如果需要返回上一页,返回后页面会刷新
如果不希望刷新,可以使用uni.navigateTo

 

总的来说,不同的页面打开方法有各自的特点和适用场景,选择合适的方法需要考虑到具体的需求、技术框架和目标平台,并且在使用时需要注意兼容性、用户体验以及安全性等方面可能会遇到的问题。

posted @ 2023-12-01 14:31  ℳℓ马温柔  阅读(363)  评论(0编辑  收藏  举报