2

Следующие сценарии относятся к устройствам Windows Phone (IE или Edge).Windows Phone: Отсутствует событие размытия в IE или Edge при нажатии кнопки «Назад»

Сценарий 1:

Если входной элемент имеет фокус и мягкая клавиатура, нажатие клавиши аппаратных средств обратно размывает целенаправленный элемент и выскакивает вниз на клавиатуру, как это должно быть. Однако соответствующее событие размытия не срабатывает.

Сценарий 2:

Если входной элемент имеет фокус и экранная клавиатура вверх, постукивая снаружи входной элемент размывает целенаправленный элемент, выскакивает вниз клавиатуру и запускает событие размытости.

Вопрос:

Есть ли способ, чтобы сделать огонь событие размытия при нажатии кнопки аппаратного назад и входной элемент имеет фокус?

HTML, чтобы воспроизвести проблему:

<!DOCTYPE html> 
<html> 
    <head> 
     <meta name="viewport" content="width=device-width, user-scalable=no" /> 
     <title>Blur Test</title> 
    </head> 
    <body> 
     <p>Blur Test</p> 
     <input type="text" onblur="alert('onblur');"> 
    </body> 
</html> 

Использование addEventListener дает тот же результат.

Испытано на Nokia Lumia 620. версии ОС: 8.0.10211.204

Edit:

Испытано на Nokia Lumia 640. версии ОС: 8.10.15148.160 (Windows Phone 8.1 Update 2 - Internet Explorer 11)

Испытано на Nokia Lumia 635. версии ОС: 10.0.10586.29 (Windows 10 Mobile - Microsoft Гурт 13)

ответ

3

Таким образом, после дальнейших исследований я собираюсь использовать событие «деактивировать» вместо «размытие».

Событие «деактивировать» выглядит как IE, по крайней мере, я не могу найти никаких документов на нем, кроме MSDN.

0

Да, когда вы нажимаете кнопку аппаратного возврата, текстовое поле все еще сфокусировано.

У нас может быть обходное решение для этого. Вы можете запустить размытие даже при нажатии на кнопку назад, когда текстовое поле сфокусировано.

Soft Keyboard up, когда вы нажимаете на текстовое поле и меняете размер окна. Таким образом, вам нужно поймать событие изменения размера экрана, и это можно сделать каждый раз, когда мягкая клавиатура вверх или вниз, т. Е. Размер экрана изменяется, когда мягкая клавиатура находится вверх или вниз.

Вы должны написать код JavaScript для этого, и что должно быть написано под

$ (документ) .ready функция

$(window).resize(function() { 
     var screenWidth = screen.width; 
     var screenHeight = screen.height; 
     var orientation = window.orientation; 
     var switchCase = "portrait"; 

     if (orientation == 0 || orientation == 180) { 
      switchCase = "portrait"; 
     } else if (orientation == 90 || orientation == -90) { 
      switchCase = "landscape"; 
     } 
     if (focusedSearchedBox) { 
      if (switchCase == "portrait") { 
       if ($(window).height() > (screenHeight * (2/5))) { 
        var searchBox = '#' + focusedSearchedBox.id; 
        $(searchBox).blur(); 
        }     
       } 
       else { 
       if ($(window).height() > (screenWidth * (2/5))) { 
        var searchBox = '#' + focusedSearchedBox.id; 
        $(searchBox).blur(); 
        }     
       } 
     } 

    }); 

и фокус события будут вызываться каждый раз, когда текстовое поле сливают и переменная focusSearchedBox устанавливается на вызов события Focus.

Это сработало для меня.

Смежные вопросы