Я понял, что нужно сделать, чтобы сделать эту остановку: явная установка ширины тела на 100% с помощью css делает это.Что за странный элемент и почему он вводится без этого, во-первых, я до сих пор понятия не имею.
body {
width:100%;
}
Это решение неизбежно добавляет горизонтальную полосу прокрутки.Поэтому я добавил класс
body.safariFix
{
width:100%;
}
и назначил его JS перед получением нужных мне значений, а затем снова его удалил.
if ($.browser.webkit) $('body').addClass('safariFix');
...
if ($.browser.webkit) $('body').removeClass('safariFix');
Часть определения браузера была добавлена, потому что при этомвызвал бесконечный цикл в MSIE.В конце концов, это внутри обработчика события resize, а удаление / добавление класса позволяет MSIE запустить событие resize.Я не использую функцию обнаружения, потому что я не знаю, какую функцию обнаружить, чтобы определить это.Было бы неплохо обнаружить нечетный экранный объект, но я не стал вдаваться в подробности.