2013-04-10 8 views
0

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

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

Все это сообщение «NaN».

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

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

Спасибо.

+1

мне трудно поверить, что '.offsetWidth' является давая вам «NaN». Можете ли вы опубликовать полный пример, показывающий возвращаемое значение? – 2013-04-10 16:30:02

+0

И как вы показываете NaN? Покажите, как вы знаете, это NaN. – epascarello

+0

Привет, это «полный пример», который точно использует код im. Я вижу NaN, используя консоль .... он выдает ошибку – CJH

ответ

1

Вы можете иметь две проблемы:

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

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

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

}); 
+0

Спасибо, я пытался избежать использования jQueery, но это решает проблему! Весьма признателен – CJH

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

  • Нет связанных вопросов^_^