HTML-символы в редакторе jWysiwyg - PullRequest
0 голосов
/ 18 июня 2011

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

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

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

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

Как и все, кто сталкивался с этим, и есть способ исправитьэто?

Ответы [ 2 ]

1 голос
/ 18 июня 2011

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

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

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

0 голосов
/ 18 июня 2011

Как ни странно, вы ответили на свой вопрос.

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

Это было сделано путем переноса его в элемент кода в 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);
    }
  });

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

...