我創建類似於編輯就地插件一個小功能。處理與(使用jQuery)其值內HTML一個輸入
作用:
- 得到上點擊一個元素的HTML內容:
var editable = $(this).html();
創建文本輸入框(或獲取它,如果它存在的話):
var input = ($('input', this).length > 0) ? $('input', this) : $('<input type="text" value="' + editable + '" />'),
替換輸入元素文本:
$(this).empty().append(input);
這工作,但只有在可編輯的文本中不包含非編碼的HTML字符。
如果有HTML字符,如<
>
,他們被轉換在第2步到HTML代碼,擾亂了輸入元素...
我試圖用逃離他們:
editable = $('<div/>').text($(this).html()).html()
但後來我得到逃出HTML文本輸入笑:)
我能做些什麼?
,真正重要的是'「,因爲它會關閉你的價值=‘’屬性的字符。你必須非常小心然而XSS注入 –
請其託管在的jsfiddle – Baz1nga
是'「'似乎是問題,因爲後面的所有文字沒有按;噸秀.. – Alex