firefox offsetWidth ничего не сообщает.

Я пытаюсь сделать динамическое изменение размера с помощью JavaScript. Для части этого мне нужно сообщить текущий размер контейнера. Я написал функцию для этого (ниже), и она отлично работает в Chrome... однако в Firefox ширина не сообщается. Я прочитал о методе offsetWidth, и теоретически он должен работать в Firefox.

function currentBoxW() {
    return document.getElementById("wrapper").offsetWidth;
}

Все это отчеты "NaN".

На этой странице есть еще кое-что в этой функции, но весь дополнительный код был закомментирован для тестирования... это фактическая строка, которая составляет отчет.

Я что-то пропустил или есть более умный способ сообщить ширину, используя JS и DOM? Есть ли другой способ получить ширину div?

Благодарю.

1 ответ

Решение

У вас могут быть две проблемы:

  1. Убедитесь, что у вас есть explicity, задайте ширину элемента (оболочки) с помощью CSS
  2. Убедитесь, что код javascript выполняется после того, как документ готов. window.onload() или что-то подобное, если вы используете какие-либо другие библиотеки JavaScript

Если вы можете использовать вместо этого jquery, вы можете легко получить его с помощью

$(document).ready(function(){ 
  function currentBoxW() {
    return $('#wrapper').width();
    or 
    return $('#wrapper').innerWidth(); //depending on the requirement. 
  }

}); 
Другие вопросы по тегам