ios - WKWebView 中的调整大小处理程序中的 window.innerWidth/Height 未更新

标签 ios safari wkwebview

我有一些全屏网页内容,当窗口使用调整大小事件更改大小时,我会更新这些内容。

window.onresize = function()
{
    var width = window.innerWidth;
    var height = window.innerHeight;
    ...
}

这在 Safari 应用程序中工作正常,但在 WKWebView 中不起作用。当设备在 WKWebView 中更改 iPhone 和 iPad 上的屏幕方向时,它会给出错误的窗口尺寸。

专门针对 iPad,我在导航 Controller 中显示 Web View 。当我切换到纵向模式时,我得到的是 (768x768) 尺寸,而不是 (768x960),这是正确的尺寸。

这个问题有解决办法吗?

最佳答案

在调整大小事件触发之前,window.clientWidth/window.clientHeight 似乎没有更新。

我找到了解决该问题的两种方法:

  • 使用document.documentElement.clientWidth而不是window.innerWidth
  • 监听 orientationchange 事件而不是 resize 事件(window.clientWidth 此时似乎已经更新)

关于ios - WKWebView 中的调整大小处理程序中的 window.innerWidth/Height 未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43302314/

相关文章:

javascript - 使用 javascript 日期时在 safari 上获取 NAN

ios - NavigationView 下的 SwiftUI WKWebView 不接受 displayMode

html - HTML输入自动完成功能在WKWebview中不起作用

iOS 后台任务/推送通知

ios - iPad,类似 App Store 的界面,管理项目的建议

ios - 使用 SW Reveal Controller 设置自定义转场

ios - swift iOS 11.2 WKWebView 不显示

ios - 如何从 iOs 中的 NSMutableArray 获取最后一个对象?

javascript - HTML<video> 网络摄像头访问在 Chrome 或 Safari 中不起作用

ios - 需要通过 localhost 在 iphone safari 上识别 deviceorientation