【JavaScript】Safari无法响应点击事件

在iOS移动端,当使用Safari浏览器时,部分用户遇到点击下载按钮无响应的状况。经排查,发现并非操作系统导致,而是Safari的安全机制阻止了在回调函数中执行window.open。为解决此问题,将原本的window.open方法替换为window.location.href,实现在所有测试的iOS操作系统上都能正确响应点击事件。
摘要由CSDN通过智能技术生成

场景:在IOS移动端扫描某个应用的二维码会跳转至一个该应用的下载页,点击下载按钮后下载该应用。

但是会出现有些IOS手机点击下载按钮没有反应的问题。起初有怀疑是不是操作系统的原因,但经过测试发现同样是IOS 13.1.3的操作系统,有的可以有的不行。因此就怀疑是不是Safari对html或者js有兼容性问题。

网上简单查了一下,发现确实有人谈到类似的问题,说是Safari的安全机制将其阻止,没办法在回调函数里面执行window.open,例如ajax回调里面执行window.open就会失效。如下是修改前的点击事件。

    <div class="bg">
        <div class="box">
            <img src="/logo.png" th:attr="src=${version.iconUrl}" class="logo"/>
            <h1 th:text="${version.appName}"></h1>
            <h3>版本:<span th:text="${version.version}"></span> 大小:<span th:text="${formatSize}"></span>M 更新时间:<span th:text="${formatDate}"></span></h3>
            <img src="" th:attr="src=$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值