Небольшой вклад в ответ дурачка:
Как описано в таблице на телефонах-дроидах, событие «directionchange» запускается раньше, чем событие «resize», блокируя следующий вызов resize (из-за оператора if). Свойство ширины все еще не установлено.
Обходной путь, хотя, возможно, и не идеальный, может состоять в том, чтобы не запускать событие «directionalchange». Это может быть заархивировано путем переноса привязки события «directionalchange» в оператор «if»:
if (!navigator.userAgent.match(/android/i))
{
window.addEventListener("orientationchange", checkOrientation, false);
}
Надеюсь, это поможет
(тесты проводились на Nexus S)