У меня была похожая проблема с Chrome и jQuery, когда я брал элемент, заполняя его содержимое с помощью $('#myElem').html(content);
Я обнаружил, что фактический innerHtml div правильно обновлялся, но экран не обновлялся. Я мог бы выделить текст в div и увидеть, что то, что я первоначально видел (старый неправильный текст), на самом деле было просто артефактом, который все еще был на экране, но выделенный текст был правильным текстом, который должен был перезаписаться оригинал.
Самое простое решение - заставить страницу обновить весь элемент управления. Я сделал это путем изменения внешнего вида фактического элемента.
Вот пример исправления, которое сработало для меня (используя ваш код):
var clickHandler = function(e) {
var el = e.target;
if(el == $highlightBox[0]) {
$highlightBox.hide();
el = document.elementFromPoint(e.clientX, e.clientY);
$highlightBox.show();
}
$frame.append(getSelector(el) + '<br/>');
// My Add to force re-rendering of control
$frame.height($frame.height() + 1); // re-renders control
$frame.height($frame.height() -1); // resets to original height
}