2013-06-10 4 views
0

Я создаю приложение с использованием KineticJS и с его последним обновлением один из моих текстовых элементов сломался. Сценарий, который ссылается на него, находится в обработчике onLoad и возвращает значение null. Это особенно странно, потому что, когда я бегу:getElementByID возвращает null с последним обновлением KineticJS

<div id="chatarea"> 
     <textarea id="chatBox"></textarea> 
     <input type="text" id="chatInput"> 
</div> 
<script> 
    console.debug(document.getElementById('chatarea')); 
</script> 

Не возвращается null. Но когда я вызываю ту же самую функцию отладки в моем скрипте.js на обработчике нагрузки, он возвращает значение null, а в консоли это происходит ПОСЛЕ одного выше! Поэтому не может быть, что скрипт работает до того, как существует чат. Я прочитал журнал изменений KineticJS и документацию, и я ничего не нашел, чтобы помочь мне. Если бы кто-нибудь мог пролить свет на это, я бы очень признателен. Я не могу использовать более раннюю версию, потому что обновление от 30 мая Google Chrome нарушило некоторые функции.

<head> 
    <script src="scripts/kinetic.js"></script> 
    <script src="scripts/screen.game.js"></script> 
</head> 
+2

'getElementById()' это метод 'document', а не' window'. – Teemu

+0

Прочитайте: «[Почему метод jQuery или DOM, такой как' getElementById', не находит элемент?] (Http://stackoverflow.com/questions/14028959/why-does-jquery-or-a-dom-method -such-as-getelementbyid-not-find-the-element) « –

ответ

2

Вы должны получать сообщение об ошибке в консоли и я думаю, что вам нужно использовать document.getElementById как это метод документа не глобальное окно рамки.

console.debug(document.getElementById('chatarea')); 
+0

Прошу прощения. На самом деле я написал document.getElementById («...») в моем .js-файле. Когда я написал это здесь, я забыл добавить его. – MasterRoro

+0

@MasterRoro разместите отладчик перед этой строкой и посмотрите, что происходит. Он работает в скрипке. http://jsfiddle.net/52C4k/ – PSL

+0

Прошу прощения. Что вы подразумеваете под местом отладчика? Вы имеете в виду заявление об отладке? С помощью операторов отладки я убедился, что текстовая область существует до тех пор, пока она не будет указана в файле .js. Там его больше нет. И я ничего не изменил, кроме обновления KineticJS. – MasterRoro

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