ios - iOS 设备上的 Google 地图 iframe 烦人的错误。如何绕过它?
问题描述
在运行 iOS12、chrome 和 safari 的 iPhone 和 iPad 上测试
错误描述:在使用 chrome 或 safari 在 iOS 设备(在 iOS12 上测试)上与谷歌地图(通过 iframe 集成在网站中)进行交互(放大/缩小)后,单击地图外的链接没有任何作用。
在codepen上尝试一下
有趣的是,该错误不会在 jsfiddle 中发生
如果您没有 iOS 设备,这是我制作的youtube视频。
发生在我的网站上,这是一个带有谷歌地图 iframe 的普通 html 页面(没有添加其他 javascript、css 文件用于测试目的):
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d12101.03207249142!2d-74.04012067655368!3d40.690314788042684!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x89c25090129c363d%3A0x40c6a5770d25022b!2sStatue+of+Liberty+National+Monument!5e0!3m2!1sen!2sus!4v1537933952825" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>
上面的 iframe 是直接从谷歌地图“分享 > 嵌入地图”功能获得的。
任何线索如何解决这个错误?
解决方案
经过一番研究,我找到了一个可以正常工作的解决方案。
如果您将事件侦听器添加到正文,它将解决问题。
document.body.addEventListener("fooAction", function(e) {
// something that does nothing
});
推荐阅读
- python - 将不同的值添加到列表而不成为元组
- ruby-on-rails - 如何在 Windows 上从 Ruby 2.5 升级到 2.7(使用 Rails 5.2.6)
- asp.net - 为什么Required IdentityUser 属性会导致可以为空的数据库字段?
- reactjs - 使用 Azure AD MSAL React 响应进行 Express Js 后端 API 令牌验证
- android - Android:资源联动失败,找不到文件
- python - Django forms.ModelForm POST 更新前更改对象
- php - 如何使用 php 中的 get 方法获取价值
- php - 当我写 @foreach($products as $product) 时,它会破坏其中的所有 html 并且没有任何东西出现
- laravel-8 - Laravel 的 php artisan migrate --path='path' 有效,但在指定 php artisan migrate 时不起作用
- html - 选择多个下拉菜单 - 我应该在哪里放置 name="blabla" 或如何绑定数据