2014-07-22 4 views
0

На моем текущем месте рабочего пространства (запустить from cloud 9 IDE) У меня есть два очень простых блоков кода:Cloud 9 не может получить класс с простым кодом javascript?

HTML

<span class="subject"> Github </span> 
<div class="content"> 
    <hr> 
    <span class="lSubj" style="color: navy;"> <a href="link"> Link </a> </span> 
    <pre><div class="gitContent">Filler Text</div></pre> 
</div> 

Javascript:

function gitFire(){ 
    var gits = document.getElementsByClassName("gitContent"); 
    for(var i = 0; i < gits.length; i ++) 
    { 
     var element = gits[i]; 
     alert(element.innerHTML); 
    } 
} 

document.onload += gitFire(); 

CLOUD 9 пространства Ссылка:https://c9.io/lemony_andrew/leandrew/workspace/test.html

Js Fiddle Ссылка:http://jsfiddle.net/T3jkp/1/

  1. Нет ошибок в отладочной консоли.
  2. Облако 9 не находит классы, но jsfiddle делает.
  3. Cloud 9 Is Выполнение кода. Я считаю, проблема связана с: getElementsByClassName
  4. Изменение document.onload += gitFire; до document.onload = gitFire; не влияет на результат.

Я думаю, что это может быть ошибка 9-го облака, но у меня никогда не было таких проблем, как раньше. Почему еще это могло работать на jsfiddle, а не на моем рабочем пространстве?

ответ

0

Вы выполняете gitFire немедленно, вместо того, чтобы прикреплять обработчик нагрузки. Он работает на JSFiddle, потому что они всегда ждут загрузки DOM перед выполнением скриптов.

document.onload = gitFire; 
+0

'document.onload + = gitFire();' и 'document.onload = gitFire;' делать точно то же самое. (по крайней мере, в результате). Спасибо за ваш вклад. – Andrew

+0

Подождите! Объясните себе немного больше, я просто попробовал что-то по отношению к вашему ответу: 'window.onload = function() {' сделал работу скрипта .. 'window.onload = function() {', но я изменил его, чтобы работать как this: 'window.onload = function() {window.onload + gitFire(); }; 'NOW, это работает только с помощью окна. Почему бы не документировать? – Andrew

+0

У меня нет подсказки, document.onload не выполняется в Firefox. Однако лучшим решением является 'document.addEventListener (" DOMContentLoaded ", gitFire);'; он работает во всех современных браузерах. – jgillich