кнопка html не становится невидимой

#javascript #html #jsp #button

Вопрос:

Я хочу установить видимость кнопки на основе того, что я получаю из атрибута сеанса в window.onload.. Появится предупреждение, поэтому кнопка должна стать невидимой.. Пожалуйста, дайте мне знать, почему он все еще виден.

 <button type="button" id="ex" onclick="">Ex</button>    
   <script>
    window.onload = function(){
          <%
          Object ex = session.getAttribute("ex");
          if (ex == null)
          {
             %>
             alert("NULL");
             document.getElementById('ex').style.visibility = 'hidden';
          <%     
          }
          else
          {
              %>
              alert("NOT NULL");
         <%   
          }
          %>
        
        };
    </script>
 

Комментарии:

1. Интересно, работает ли ваш js быстрее, чем браузер может отображать html. Если вы поставите console.log(document.getElementById('ex')) после предупреждения, оно поднимет его?

2. Спасибо. Нет, я только что проверил, и журнал консоли не появился. Как мне следует поступить ?

3. Вместо того , чтобы использовать window.onload , используйте document.addEventListener("DOMContentLoaded", function(e) { YOUR_CODE }); . Вы хотите убедиться, что DOM завершил загрузку, прежде чем начинать вызывать элементы из него.

4. Огромное спасибо.

5. Теоретически говоря, не должно быть проблем с тем, что элемент не загружается, потому что а) load событие окна всегда срабатывает после DOMContentLoaded и б) сценарий помещается после кнопки, поэтому браузер должен отобразить кнопку перед выполнением сценария.