2012-04-09 3 views
3

У меня есть веб-приложение, прекрасно работающее в Chrome и FireFox, но сбой в IE. Обратите внимание, что это не ошибка JavaScript, а процесс iexplore.exe действительно сбой.Отладка сбой IE

Код размещен ниже. Это приведет к сбою в IE9 (при нажатии кнопки). Реверсирование JavaScript или внесение изменений в CSS может устранить эту проблему, но поймите, что это уменьшенный код из гораздо большего приложения, которое невозможно легко изменить таким образом (например, в реальном приложении две команды JavaScript вызывается в двух разных функциях - вторая выполняется условно на основе результатов первого). Я даже не уверен, что мой вопрос больше, кроме «есть ли способ заставить Microsoft быстро исправлять это?» Я интересно услышать мысли людей:

<!DOCTYPE html> 
<html> 
    <head> 
     <title>IE Crash</title> 
    </head> 
    <body> 
     <div id="dvStep11" style="width:500px;"> 
      <label for="inpDOB">Date of Birth (mm/dd/yyyy)</label> 
      <input type="text" id="inpDOB" style="width:350px;" /> 
     </div> 
     <button onclick="document.getElementById('inpDOB').value = '12/7/1971';document.getElementById('dvStep11').style.display='none';">Click here</button> 
    </body> 
</html> 

Edit: Я открыл дело с Microsoft, и я работаю над этим с членом команды развития там. Я обновлю это, когда получу дополнительную информацию.

+0

Можете ли вы разместить сайт? Полностью ли IE обновлен? Какую версию IE вы использовали? – rook

+0

Извините, я должен был указать, что использую последнюю версию IE9. Я не могу опубликовать фактический сайт, поскольку он является конфиденциальным и конфиденциальным. Я использовал отладчик IE9, чтобы найти строку, в которой он разбивается, как я упоминал в вопросе. Я могу опубликовать ссылку на jsFiddle, содержащую соответствующий код, но поскольку он работает там, я не уверен, насколько это поможет. –

+0

Нет кода, то никто не сможет вам помочь. Сообщите об этом Microsoft. Никого больше не волнует, и все-таки его ошибка в M $. – rook

ответ

8

Microsoft подтвердила мне, что это ошибка в движке рендеринга IE9. Из моих дальнейших исследований это связано с тем, что ширина родительского DIV в сочетании с шириной INPUT заставляет INPUT обертываться. По какой-то причине в этом случае при назначении значения INPUT и немедленном скрытии родительского DIV IE сбой.

Microsoft предложила мне заставить IE использовать движок рендеринга IE8 (который не врезаться) с этой строки кода:

<meta http-equiv="X-UA-Compatible" content="IE=8" /> 

я нашел, однако, что я могу также просто избежать этой проблемы, обернув INPUT в своем собственном неэтилированном DIV или SPAN. Это предпочтительнее, потому что, помимо этой ошибки, движок рендеринга IE9 намного лучше (и быстрее), чем IE8.

0

Смешно, что отладчик IE9 приносит очень полезно с точками разрыва, отслеживанием переменных и т. Д., Поэтому я попытаюсь посмотреть, поможет ли это какая-либо помощь. (Если вы можете получить IE9, я не уверен в инструментах dev в IE 7 и 8).

+0

, что не поможет, если это произойдет при загрузке страницы – brauliobo