Firefox начальной загрузки JavaScript не инициализирован? - PullRequest
0 голосов
/ 19 мая 2018

[Отредактированный вопрос] Код JavaScript:

var ECM_pos = [ 3,2];
function ECM_display() {
  document.forms["ECM"].elements[0].value = "  " + ECM_pos[0] + "o ";
  document.forms["ECM"].elements[1].value = "  " + ECM_pos[1] + "  ";}

function ECM_coloring(num, mycolor){
  switch (num){
    case 1: document.forms["ECM"].ECM_button1.style.background=mycolor; break;
    case 2: document.forms["ECM"].ECM_button2.style.background=mycolor; break;}}

function ECM_do() {
  ECM_coloring(1, "#2EFEF7"); ECM_coloring(2, "#2EFEF7"); ECM_display();}

при использовании в html:

<body onLoad="window.ECM_do();">
<form name="ECM">
 <table >
   <tr> <td>
   <input type="button" name="ECM_button1" value="  A  "
              onClick="window.ECM_do();"> </td>
     <td> <input type="button" name="ECM_button2"
                 value="  2  "
                 onClick="window.ECM_do();"> </td>
     </tr>
     </table>
</form>

дает обманчивый ответ: ячейка с2 слишком большой.Когда вы нажимаете на него, он становится обычного размера.Если я изменю значение 2 в ECM_pos в начале или внесу какие-либо другие изменения в эту ячейку: эти ячейки будут правильно отформатированы.Похоже, что механизм рендеринга видит, является ли содержимое этой ячейки новым или нет.Если не новый, то он не переделан.Остальное это так.Это примерно такой простой пример, как я мог бы получить.

Думаю, это довольно недавние хлопоты.Большое спасибо за любые подсказки!Бест, Оливье

1 Ответ

0 голосов
/ 21 мая 2018

Я не нашел, почему поведение такое, но есть разумный обходной путь: в HTML, поместите значение по умолчанию, отличное от значения инициализации :) В любом случае это значение по умолчанию не будет использоваться (оно было толькоздесь, чтобы сделать код проще для чтения).Бест, О.

...