2015-03-18 2 views
2

У меня уже есть приложение ExtJS, приложение которого содержит более 200 сеток. Некоторые из сеток имеют <> как HTML. Моя сетка не может просматривать HTML Так я изменить функцию на стороне сервера (общая функция ГЭТ) как htmlspecialchars($value, ENT_QUOTES);Escape HTML в приложении ExtJS вообще?

После этой сетки можно просмотреть значение HTML как

проблема, когда RowEditing режим значение представления как значение кодирования (&lt;start)

примечание: это происходит каждый вид, сетки-RowEditing,

я пытаюсь переопределить каждый вход, поданный в answer, но это не работает для меня

launch: function() { 
    panel = Ext.create('me_project.view.me_panel', {renderTo: 'form'}); 
    Ext.override(Ext.form.field.Base, { 
     setValue: function(val) { 
      val = Ext.util.Format.htmlDecode(val); 
      return this.callParent([val]); 
     } 
    }); 
} 

ответ

1

Функция htmlDecode только декодирует символы < > & ', как показано в документации http://dev.sencha.com/deploy/ext-1.1.1/docs/output/Ext.util.Format.html. Вы можете попробовать установить свойство autoEncode: true, как показано на странице http://all-docs.info/extjs4/docs/api/Ext.grid.Editing.html. Для декодирования то, что HTML, закодированные с JQuery вы можете использовать val = $('<\div>').html(val).text(); С помощью JavaScript вы можете использовать var textArea = document.createElement("textarea"); textArea.innerHTML =val; val = textArea.value;

+0

, который каждый трудно сделать идут каждый поданный и метод изменения значения получить сейчас. и больно надеюсь, что решение ExtJs не Jquery в любом случае спасибо за ваши отзывы – user881703

+0

Спасибо за отзыв. Я добавил несколько других решений. –

+0

@moishe спасибо за 'autoEncode'. Смешивание jquery и ExtJs всегда следует избегать, на мой взгляд. –