Ошибка IE: невозможно установить значение свойства innerHTML: объект имеет значение null или не определен - PullRequest
3 голосов
/ 09 января 2012

Этот простой кусок кода (индикатор выполнения) отлично работает везде, кроме IE (пробовал 9 и 8):

      <!-- Progress bar holder -->
      <div id="progress" style="width:500px;border:1px solid #eee;"></div>
      <!-- Progress information -->
      <div id="information" style="width"></div>

      <?php

      // Total processes
      $total = 10;

      // Loop through process
      for($i=1; $i<=$total; $i++){
      // Calculate the percentation
      $percent = intval($i/$total * 100)."%";

     // Javascript for updating the progress bar and information
     echo '<script language="javascript">
     document.getElementById("progress").innerHTML="<div style=\"width:'.$percent.';   background-color:#ddd;\">&nbsp;</div>";
document.getElementById("information").innerHTML="'.$i.' row(s) processed.";
</script>';

// This is for the buffer achieve the minimum size in order to flush data
echo str_repeat(' ',1024*64);

// Send output to browser immediately
flush();

// Sleep one second so we can see the delay
sleep(1);
}

// Tell user that the process is completed
echo '<script language="javascript">document.getElementById("information").innerHTML="Process completed"</script>';

 ?>

IE отображает ошибку "Невозможно установить значение свойства 'innerHTML': objectявляется нулевым или неопределенным ".Кажется, проблема здесь:

    document.getElementById("progress").innerHTML="<div style=\"width:'.$percent.';background-color:#ddd;\">&nbsp;</div>";

div в этом случае не работает должным образом в IE (по крайней мере, насколько я понял)

Пытался исправить это самостоятельно, ноэто слишком сложно для меня.Любая помощь будет высоко ценится.Спасибо)

Ответы [ 2 ]

1 голос
/ 09 января 2012

документ, вероятно, еще не загружен.

попробуйте

window.onload = function() {
    // your code
}

или я всегда использую jQuery

$(function () {
    // your code
});
0 голосов
/ 23 февраля 2013

Решение, скорее всего, обеспечит правильную структуру документа.

Это не работает:

<div id="content"></div>
<script>
document.getElementById('content').innerHTML="HELLO WORLD";
</script>

Это работает:

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
    <div id="content"></div>
    <script>
    document.getElementById('content').innerHTML="HELLO WORLD";
    </script>
    </body>
</html>
...