Некоторые ограничения при использовании innerHTML в современных браузерах:
- Невозможность выполнить скрипты. 1 Браузеры игнорируют теги <script>, вставленные с помощью innerHTML. 1
- Уничтожение вложенных HTML-элементов. 2 Это может вызвать утечки памяти в некоторых браузерах. 2
- Невозможность получить ссылку на только что созданные элементы. 2 Приходится добавлять код для получения ссылки на них вручную (используя DOM API). 2
- Невозможность выставить innerHTML для всех HTML-элементов во всех браузерах. 2 Например, Internet Explorer не позволяет выставить innerHTML для строки таблицы (tr). 2
Также не рекомендуется вставлять с помощью innerHTML любой HTML из ненадёжных источников. 3 Например, если получать разметку с неизвестного сервера. 3