jWysiwyg编辑器中的HTML字符



我不知道这个问题是什么。我正在使用jQuery long和名为jWysiwyg的插件。

每当我在编辑器中输入HTML实体名称或编号©©时,它就会恢复为实际字符。没有这个功能,我认为它一定是字符设置。

我对一些字符没有问题,但不是所有的字符,因为当它们发布时,很少有方块或黑钻石出现在实际的网页上。

我试着尽可能地改变角色集,但这并不能解决我的问题。

其他人遇到这个问题并想办法解决吗?

这是因为所见即所得编辑器呈现html实体,如&复制与在所见即所得编辑器中显示为图像的方式相同。我在使用另一个基于jQuery的编辑器时遇到了类似的问题。

我认为唯一能解决这个问题的方法是在提交时将其转换回html实体,或者可能不太可能正常工作,字符串替换&在加载编辑器时,每个html实体上都有&。这样它就会显示为&复制而不是版权符号,这应该(?)使其存储为&复制而不是©象征

也许这会有所帮助?这是为jwysiwyg制作的一个实用函数,旨在将内容发布为它们的html实体代码。尽管动态使用<code>标记的想法可能也很好:P,并且您只需要在服务器上使用strip_tags。

以一种有趣的方式,您回答了自己的问题。

当我第一次加载此页面时,我注意到©;我对你想做的事情感到困惑。然后,你编辑了它;变成了&#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事件。因此,为了实现您的目标,您可能需要在编辑器中添加一个事件,然后在KeyUp上搜索文本中的特殊字符,并将它们封装在代码中。所以,伪代码应该是这样的(我没有测试它,所以它可能有点bug)。。。

  $("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);
    }
  });

正如我所说,我没有尝试过;所以,如果答案对你有用的话,用你最终使用的内容来编辑你的答案。

最新更新