【问题标题】:Determining the correct Android WebView screen size after soft keyboard hides with JavaScript?使用 JavaScript 隐藏软键盘后确定正确的 Android WebView 屏幕尺寸?
【发布时间】:2011-08-09 18:50:18
【问题描述】:

我正在开发一个“移动网络”应用程序,并且完全依靠 javascript 来解决这个问题。在某些 Android 设备上,尤其是三星 Galaxy 系列,当软键盘出现时会触发 window.resize 事件,从而缩短我的 screen.height 的高度。当用户点击软键盘的“开始”按钮时,我的应用程序重新加载的高度小于软键盘的高度。

现在,我正在监听 window.resize 事件,因此如果用户旋转设备,一切都会自行恢复。但是,我希望找到一种以编程方式触发 window.resize 事件的方法,这样当我旋转设备时执行的每个操作都会被触发。 p>

这个可以吗?

【问题讨论】:

    标签: javascript android


    【解决方案1】:

    如果您使用 jQuery 移动版,请使用 jQuery trigger()

    如果不使用来自stackoverflow questionthis 代码:

    您可以在 IE 上使用 fireEvent,在大多数其他设备上使用 w3c 的 dispatchEvent 浏览器。要创建要触发的事件,您可以使用 createEvent 或 createEventObject 取决于浏览器。

    这是一段不言自明的代码(来自原型),它触发 元素上可用的事件数据:

        var event;
      if (document.createEvent) {
        event = document.createEvent("HTMLEvents");
        event.initEvent("dataavailable", true, true);
      } else {
        event = document.createEventObject();
        event.eventType = "ondataavailable";
      }
    
      event.eventName = eventName;
      event.memo = memo || { };
    
      if (document.createEvent) {
        element.dispatchEvent(event);
      } else {
        element.fireEvent(event.eventType, event);
      }
    

    更新:

    有一个fireEvent() 用于IE 和dispatchEvent() 方法用于非IE 浏览器。您可以手动触发事件。诀窍是像window.resize 一样创建一个事件并触发它。我从来没有试过这个。但我希望这会有所帮助。

    【讨论】:

    • Mohsen,我试过了,但没有解决问题。如果我可以使用这种技术触发浏览器触发的相同事件,那会有所帮助,但我还不知道该怎么做。
    • 你在那里使用 jQuery 吗?如果是,你只需要写 $(window).trigger('close');
    【解决方案2】:

    我遇到了同样的问题并放弃了尝试触发事件并在键盘消失后修改元视口。在这里查看答案:https://stackoverflow.com/a/11321889/1500269

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-29
      • 2013-02-05
      • 2015-10-26
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多