contentEditable div допускает только тег TEXT и IMG - PullRequest
1 голос
/ 14 сентября 2011

Если у меня есть contentEditable div, я могу удалить все элементы HTML, кроме IMG с определенным классом. Я задал вопрос об этом, но у меня проблемы с этим. Проблема в том, что Google Chrome использует div s как разрыв / разделитель строк, Internet Explorer использует p, а Mozilla Firefox использует только <br>.

Как я могу удалить все элементы HTML, за исключением изображений, из contentEditable div и сохранить строки для всех браузеров?

Я использовал:

   var element = document.getElementById("myDiv");
   for(var i=0; i<element.children.length;i++)
   {
     if(element.children[i].tagName != "IMG" || 
        element.children[i].className != "requiredClassName")
     {
       element.insertBefore(document.createTextNode(element.children[i].innerHTML.replace(/<\/?.*?\/?>/gi, ''), element.children[i]);
       element.children[i].parentNode.removeChild(element.children[i]);
     }
   }

Но это вызывает проблемы в IE и Chrome, он удаляет все строки, и весь текст стал одной длинной строкой.

Мне нужен только чистый код JavaScript.

...