Chrome не может найти offsetTop - PullRequest
1 голос
/ 25 мая 2011

style.top offsetTop в chrome - это «объект DOM Window», это не дает целое число, почему. Я гуглю такую ​​проблему, но, похоже, у меня есть такая проблема.

Они хорошо работают в Firefox. Как получить offsetTop элемента в Chrome.

код:

<input type="button"id='test' value="clickme"/>
<script>
document.getElementById('test').addEventListener('click',function(){
    alert(this.offsetTop);
    top = this.offsetTop;
    alert(top);
},true)
</script>

Ну, это очень интересно, работает в функции оповещения, но не может быть сохранено.

1 Ответ

2 голосов
/ 25 мая 2011

Поскольку window.top уже является встроенным свойством в браузерах. Смотрите здесь: https://developer.mozilla.org/en/DOM/window.top

Это свойство доступно только для чтения ( см. Здесь ):

readonly attribute WindowProxy top;

, что означает, что присвоение top = this.offsetTop ничего не делает.

Это классический случай проблемы, которая возникает из-за загрязнения глобального пространства имен. Не делай этого. Вместо этого объявите свои переменные локально:

document.getElementById('test').addEventListener('click', function() {
    var top = this.offsetTop;
    alert(top);
}, true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...