Ширина WebKit не обновляется? - PullRequest
       15

Ширина WebKit не обновляется?

1 голос
/ 02 августа 2009

У меня есть кусок кода, который запускается при изменении размера окна. Я вытягиваю width и outerWidth входного текстового элемента.

Этот процесс работает нормально во всех браузерах, кроме Webkit, который возвращает правильный результат из outerWidth, но результат из width никогда не изменяется из оригинала под нагрузкой.

Это фактический вывод консоли из моего скрипта при изменении размера окна браузера (это Chrome, но то же самое происходит в Safari 4):

outerWidth: 772
width: 772
outerWidth: 773
width: 772
outerWidth: 773
width: 772
outerWidth: 794
width: 772
outerWidth: 794
width: 772
outerWidth: 815
width: 772
outerWidth: 815
width: 772
outerWidth: 820
width: 772
outerWidth: 837
width: 772

Кто-нибудь испытывал это раньше? Вы знаете, почему это происходит? И самое главное, вы знаете, как обойти это? :)

Спасибо.

1 Ответ

0 голосов
/ 02 августа 2009

Вот мой тестовый пример. Кажется, что оба работают должным образом (Safari 4).

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
  <style type="text/css">
    input {
      width: 50%;
      height: 2em;
      font-size: 1em;
    }
  </style>
</head>
<body>
  <p>
    <input type="text" id="w" />
  </p>
  <p>
    <input type="text" id="ow" />
  </p>
  <script type="text/javascript">
    function init(){
      $('#w').val($('#w').width());
      $('#ow').val($('#ow').outerWidth());
    }
    $(function(){
      init();

      $(window).resize(function(){
        init();
      });
    });
  </script>
</body>
</html>
...