2013-03-20 1 views
0

Я искал интернет, ища ответ на эту проблему, но, увы, я вынужден обратиться за помощью.Использование cleditor в Internet Explorer 9 приводит к некорректному экранированию двойных кавычек

Я использую плагин jQuery cleditor для его возможностей редактирования Rich Text/HTML. По большей части он отлично работает. Тем не менее, есть странная проблема, если я делаю следующее в IE9:

  1. Нажмите на кнопку «Показать источник» в правом верхнем углу панели инструментов, чтобы перейти в режим HTML
  2. Вставьте следующий фрагмент кода:

    <p>Note the double-quotes</p> 
    <div onclick='alert("hi")'>click me</div> 
    
  3. переключатель обратно в Rich Text Mode и сделать тривиальное изменение (например, для добавления пробела)

  4. переключатель снова в режим HTML

Обратите внимание, как двойные кавычки теперь неправильно бежал так:

<div onclick="alert(\"hi\")">click me</div> 

Какого черта здесь происходит? Другие браузеры избежать двойные кавычки должным образом:

<div onclick="alert(&quot;hi&quot;)">click me</div> 

Я попытался с помощью сущности, &quot;, сам, но это не имеет значения - IE9 до сих пор портит его. Кто-нибудь знает, как преодолеть эту проблему?

ответ

0

Ничего, я понял. Если кто-то еще борется с этой проблемой, я думаю, что это комбинация использования cleditor, плагина XHTML и Internet Explorer.

Вы можете это исправить, добавив этот JavaScript Snippet перед кодом cleditor:

(function ($) { 
    var oldCallback = $.cleditor.defaultOptions.updateTextArea; 

    $.cleditor.defaultOptions.updateTextArea = function (html) { 
     if (oldCallback) { 
      html = oldCallback(html); 
     } 

     var isIE = /*@[email protected]*/false; 
     if (isIE) { 
      return html.replace(/\\\"/g, "&quot;"); 
     } else { 
      return html; 
     } 
    }; 
})(jQuery); 

В качестве альтернативы, вы можете сделать условную замену в jquery.cleditor.js (строка 1126 для cleditor версии 1.3.0).

 Смежные вопросы

  • Нет связанных вопросов^_^