HTML-символы в редакторе jWysiwyg

Я заблудился в том, что это может быть за проблема. Я использую jQuery долго с плагином под названием jWysiwyg.

Всякий раз, когда я ввожу имя или номер объекта HTML © или же © в редакторе это возвращается к фактическому персонажу. Для этого нет функции, которая, я полагаю, должна быть символьной.

У меня нет проблем с этим на некоторых персонажах - но не на всех, так как немногие из них появляются в виде квадратных прямоугольников или черного алмаза на самом веб-странице после публикации.

Я пытался менять наборы символов везде, где это возможно, и это не решает мою проблему.

Как кто-нибудь еще сталкивался с этим и есть обходной путь, чтобы это исправить?

2 ответа

Это потому, что редакторы WYSIWYG отображают HTML-объекты, такие как © их значение символа (символ авторского права), точно так же будет отображаться как изображение в редакторе WYSIWYG. У меня была похожая проблема с другим редактором на основе jQuery.

Я предполагаю, что единственный способ исправить это - преобразовать его обратно в html-объект, когда вы отправляете его, или, вероятно, с меньшей вероятностью он будет работать должным образом, замена строки и & на каждой HTML-сущности при загрузке редактора. Таким образом, он будет отображаться как © вместо символа авторского права, что должно (?) Сделать его сохраненным как © вместо символа ©...

Возможно, это поможет? Это служебная функция, созданная для jwysiwyg, предназначенная для публикации вещей в виде их HTML-кода сущности. Хотя эта идея использования <code> динамические теги, вероятно, тоже будут работать хорошо:P, и вы просто используете strip_tags на сервере.

Забавно, ты ответил на свой вопрос.

Когда я впервые загрузил эту страницу, я заметил © и был озадачен тем, что вы пытались сделать. Затем вы отредактировали его, и © стал &#169; Если вы просматриваете исходный код, вы увидите, что, когда вы нажмете кнопку "блок кода" в редакторе Stackru, символ копирования отобразится так, как вы этого хотели.

Это было сделано, обернув его в элемент кода в html (вы можете щелкнуть правой кнопкой мыши> просмотреть исходный код, чтобы увидеть...

<p>Whenever I enter an HTML Entity Name or Number <code>&amp;copy;</code> or <code>&amp;#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);
    }
  });

Как я уже сказал, я не дал этому попробовать; так что отредактируйте свой ответ, используя то, что вы использовали, если он работает для вас.

Другие вопросы по тегам