首页 > 其他分享 >移动端window.open跳转链接时,iOS没有反应的问题解决

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

时间:2024-10-08 15:48:49浏览次数:7  
标签:交互 iOS 用户 window 跳转 open

问题描述: 使用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或iPad
    if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
        // 如果是移动设备,则重定向页面
        window.location.href = url;
    } else {
        // 否则,在新窗口打开链接
        window.open(url);
    }
}

标签:交互,iOS,用户,window,跳转,open
From: https://www.cnblogs.com/Chowhound/p/18451798

相关文章

  • Chromium 中Window.localStorage对象c++实现分析
    一、前端定义Window.localStorage只读的localStorage 属性允许你访问一个Document 源(origin)的对象 Storage;存储的数据将保存在浏览器会话中。localStorage 类似 sessionStorage,但其区别在于:存储在 localStorage 的数据可以长期保留;而当页面会话结束——也就是说,当页面......
  • [1067] Add comments for files in Windows
    CreateashortcutofthefilePressandholdthe[Alt]keyLeftclickmouseandDragtheselectedfolders/itemstoa"freespace"andreleaseMousebuttonnowyouhavecreatedshortcutsOpenthepropertiesofthefileshortcut,thencanaddt......
  • 在Windows 10中,您可以使用以下命令来转换系统版本(例如,从家庭版升级到专业版)。主要使用
    在Windows10中,您可以使用以下命令来转换系统版本(例如,从家庭版升级到专业版)。主要使用的是slmgr和DISM工具。以下是相关命令:1. 查看当前版本和激活状态bashCopyCodeslmgr/dli2. 输入新产品密钥bashCopyCodeslmgr/ipk<新产品密钥>请将<新产品密钥>替换为您要升......
  • windows@win10@Win11版本号和代号命名变迁@获取或查看windows版本号信息详情方法列举
    文章目录相关文档或参考变迁概况Windows版本号及命名变迁Windows版本及其代号命名变迁分析大版本换代与构建版本变更节点关键点总结查看windows系统的版本号......
  • Windows 11 version 24H2 & LTSC 2024 中文版、英文版 (x64、ARM64) 下载 (updated Oc
    Windows11version24H2&LTSC2024中文版、英文版(x64、ARM64)下载(updatedOct2024)Windows11,version24H2,企业版arm64x64请访问原文链接:https://sysin.org/blog/windows-11/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org全新Windows体验,让您与热......
  • Windows 新建缓冲区应对高速闪屏问题
    高速使用system("cls")会导致非常严重的闪屏新建第二个缓冲区即可解决该问题,操作分为两步,打开缓冲区开关,以及将缓冲区内容输出到控制台一份无优化的用来比对效果的代码#include<bits/stdc++.h>usingnamespacestd;intmain(){while(1){for(inti='a';i<='z'......
  • 如何去除Windows10文件资源管理器上的6个文件夹:桌面、视频、图片、文档、下载、音乐和
    尽管 Win10 提供了迄今为止最先进和丰富的功能,但并不是每一个人都希望其预装那么多的组件。长期以来,微软通常会在Windows资源管理器中包含6个“桌面、文档、下载、音乐、图片和视频”的默认存储位置。在2017年10月的“秋季创意者更新”之后,它又增加了“3D对象”。其旨在为......
  • windows服务器IIS服务修改已绑定的网站域名
    要在Windows服务器上的IIS(InternetInformationServices)中修改已绑定的网站域名,可以按照以下步骤操作:打开IIS管理器:打开“开始”菜单,输入“InternetInformationServices(IIS)管理器”,并打开它。或者通过“服务器管理器”中的“工具”菜单打开IIS管理器。......
  • Windows应急响应-QQ巨盗病毒
    目录病毒背景样本分析开启监控感染病毒分析病毒行为C盘文件监控D盘文件监控进程监控排查服务排查启动项排查查杀1.杀掉进程2.异常服务3.映像劫持处理4.hosts文件处理5.D盘文件删除6.其他异常排查重启排查病毒背景简介:Win32.PSWTroj.QQPass,名为:【QQ伪装盗号者】是一种QQ盗号木马,......
  • c goto动态label跳转
    pg表达式引擎里面各个表达式的串联是使用goto动态label实现的。//定义部分#ifdefined(EEO_USE_COMPUTED_GOTO)staticconstvoid*constdispatch_table[]={&&CASE_EEOP_DONE,&&CASE_EEOP_INNER_FETCHSOME,&&CASE_EEOP_OUTER_FETCHSOME,......