HTML-символы в редакторе jWysiwyg
Я заблудился в том, что это может быть за проблема. Я использую jQuery долго с плагином под названием jWysiwyg.
Всякий раз, когда я ввожу имя или номер объекта HTML ©
или же ©
в редакторе это возвращается к фактическому персонажу. Для этого нет функции, которая, я полагаю, должна быть символьной.
У меня нет проблем с этим на некоторых персонажах - но не на всех, так как немногие из них появляются в виде квадратных прямоугольников или черного алмаза на самом веб-странице после публикации.
Я пытался менять наборы символов везде, где это возможно, и это не решает мою проблему.
Как кто-нибудь еще сталкивался с этим и есть обходной путь, чтобы это исправить?
2 ответа
Это потому, что редакторы WYSIWYG отображают HTML-объекты, такие как © их значение символа (символ авторского права), точно так же будет отображаться как изображение в редакторе WYSIWYG. У меня была похожая проблема с другим редактором на основе jQuery.
Я предполагаю, что единственный способ исправить это - преобразовать его обратно в html-объект, когда вы отправляете его, или, вероятно, с меньшей вероятностью он будет работать должным образом, замена строки и &
на каждой HTML-сущности при загрузке редактора. Таким образом, он будет отображаться как © вместо символа авторского права, что должно (?) Сделать его сохраненным как © вместо символа ©...
Возможно, это поможет? Это служебная функция, созданная для jwysiwyg, предназначенная для публикации вещей в виде их HTML-кода сущности. Хотя эта идея использования <code>
динамические теги, вероятно, тоже будут работать хорошо:P, и вы просто используете strip_tags на сервере.
Забавно, ты ответил на свой вопрос.
Когда я впервые загрузил эту страницу, я заметил © и был озадачен тем, что вы пытались сделать. Затем вы отредактировали его, и © стал ©
Если вы просматриваете исходный код, вы увидите, что, когда вы нажмете кнопку "блок кода" в редакторе Stackru, символ копирования отобразится так, как вы этого хотели.
Это было сделано, обернув его в элемент кода в html (вы можете щелкнуть правой кнопкой мыши> просмотреть исходный код, чтобы увидеть...
<p>Whenever I enter an HTML Entity Name or Number <code>&copy;</code> or <code>&#169;</code> within the editor it reverts to the actual character. There is no function for this, which I assume it must be character setting.</p>
Я никогда не использовал редактор, на который вы ссылаетесь; но похоже, что они просто используют события javascript по умолчанию. Таким образом, чтобы достичь цели, вам, вероятно, нужно добавить событие в ваш редактор, а затем onKeyUp, вы будете искать в тексте специальные символы и заключать их в код. Итак, псевдокод будет примерно таким (я не проверял это, поэтому он мог бы быть немного ошибочным)...
$("textarea").wysiwyg({
keyup: function(event) {
var editorContent = getContent(); // Or whatever you call to get the content
// Replace all instances of $# followed by 3 digits and a semicolon, with
// the same thing, only wrapped in a code block.
editorContent.replace(/&#[\d]{3};/g, <code>&#[\d]{3};<\\code>);
// Again, I don't know if this function exists, just throwing it out
// there so you get the general idea.
setEditorContent(editorContent);
}
});
Как я уже сказал, я не дал этому попробовать; так что отредактируйте свой ответ, используя то, что вы использовали, если он работает для вас.