移动端window.open跳转链接时,iOS没有反应的问题解决

news/2024/10/8 15:58:36/文章来源:https://www.cnblogs.com/Chowhound/p/18451798

问题描述: 使用window.open跳转链接时安卓可以正常跳转,但是iOS苹果上没有反应
问题原因:

  1. 用户交互限制
    iOS 对于 window.open 的调用有严格的用户交互要求。如果 window.open 不是在用户交互(如点击事件)的上下文中调用的,可能会被浏览器阻止。

  2. 弹出窗口拦截
    某些浏览器可能会默认拦截弹出窗口,尤其是当用户没有明确的交互动作时。

  3. JavaScript 执行顺序
    如果 window.open 被放在异步操作之后,可能会导致问题。
    【解决方案】在用户交互事件的回调中立即执行

  4. iOS Safari 特性
    iOS Safari 对于 window.open 的行为有一些特定的限制。例如,window.open 可能不会在某些情况下打开新标签页,而是会在同一个标签页中导航。(与1类似)

  5. URL 格式问题
    确保 URL 格式正确,没有语法错误。

此处我遇到的问题为第一种,如有类似问题,可尝试采用相同方案进行解决

function skipLink(url){// 获取用户代理信息(不考虑代理信息被伪装的情况)var userAgent = (navigator.userAgent || navigator.vendor || window.opera) || 'Unknown';// 检查是否是iPhone或iPadif (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {// 如果是移动设备,则重定向页面window.location.href = url;} else {// 否则,在新窗口打开链接window.open(url);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/810003.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IIS 配置referer 请求筛选_请求拒绝

一、IIS 配置Referer 拒绝解析: 访问静态内容,拒绝指定的referer,例如:拒绝后,对应的网站引用当前网站的静态资源会被拒绝。更多: iis怎么限制http下载速度_IIS 限制网站带宽使用? IIS 执行此操作时出错。 详细信息:web.config 错误,.net core项目IIS10 隐藏 http serve…

RAG系统评测实践详细版:Coze及相关产品评测对比,以及下一代RAG技术

RAG系统评测实践详细版:Coze及相关产品评测对比,以及下一代RAG技术AI RAG系统评测实践:Coze及相关产品评测对比 RAG(检索增强生成)是一种 AI 框架,它将传统信息检索系统(例如数据库)的优势与生成式大语言模型 (LLM) 的功能结合在一起,通过将这些额外的知识与自己的语言…

深入了解Oracle OCP认证,开启数据库专业之旅

使用Oracle数据库的公司内部,经常有员工们在讨论OCP认证(Oracle Certified Professional,Oracle认证专家),这是甲骨文Oracle公司提供的一种专业认证,认证用于使用者在Oracle技术领域的专业知识和技能。 在这里,有一点需要大家知道,虽然OCP认证一般指的是Oracle数据库管理…

vue2项目 一直报ts-plugin错误

如图,项目代码未动,突然代码报错,运行没问题不受影响 经排查,插件Vue-Official版本问题 ,问题版本v2.1.6 解决版本,安装其他版本 ,v1.8.27 作者:听着music睡出处:http://www.cnblogs.com/xqxacm/Android交流群:38197636本文版权归作者和博客园共有,欢迎转载,但未经…

鼠标的移入、移出事件

原文链接:鼠标的移入、移出事件_鼠标移入事件-CSDN博客

初识Rancher

一、简介 1、什么是rancher Rancher是一个开源软件平台,使组织能够在生产中运行和管理Docker和Kubernetes。使用Rancher,组织不再需要使用一套独特的开源技术从头开始构建容器服务平台。Rancher提供了管理生产中的容器所需的整个软件堆栈。  2、充分发挥K8s的潜力 Kubernete…

Linux下操作Nginx相关命令

1、查看Nginx进程 ps -aux | grep nginx圈出的就是Nginx的二进制文件 2、测试Nginx配置文件 /usr/sbin/nginx -t可以看到nginx配置文件位置 3、nginx的使用(启动、重启、关闭) 首先利用配置文件启动nginx。nginx -c /usr/local/nginx/conf/nginx.conf重启服务:service nginx r…

10月8号笔记

1.StringUtil常用方法2.判断不为空:CollectionUtils.isNotEmpty():集合不为空; StringUtils.isNotBlank():String不为空; MapUtils.isNotEmpoty():Map集合判断不为空;3."::"用法:4.getRecords()用法:5.MyBatis-Plus常用方法:6.MyBatis-Plus中Page与IPage的区…

夜莺监控的机器支持挂载到多个业务组了

夜莺开源项目于国庆前夕发布了 v7.4.1 版本,修复了一些 bug,同时也带来了一些新功能。其中最重要的一个功能是:机器支持挂载到多个业务组了。本文将介绍几个重要的变更。 所有变更点feat: 左侧栏业务组新设计 feat: 机器支持了绑定到多个业务组,机器混部的场景,管理机器更…

SS241007C. 步行(walk)

待订正。SS241007C. 步行(walk) 题意 给你一个 \(n \le 3 \times 10^5\) 个结点的树,每个结点有一个权值 \(a_i\)。有 \(m \le 1.5 \times 10^6\) 次询问,每次删除一条边,然后再连上一条边。如果修改后的图不是树输出无解。否则找出一条路径,满足每个点恰好经过 \(a_i\) …

day02_基本的DOS命令

电脑常用快捷键 常用快捷键快捷键 作用CTRL + c 复制CTRL + v 粘贴CTRL + x 剪切CTRL + z 撤销CTRL + s 保存alt + f4 关闭窗口del 删除shift + del 强制删除Windows + r 打开 “运行” 窗口windows + e 打开 “我的文档”ctrl + alt + del 锁定/切换用户/注销/更改密码/任务管…