0

我不知道这个问题可能是什么。我将 jQuery long 与名为 jWysiwyg 的插件一起使用。

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

我对某些字符没有问题——但不是所有字符,因为它们中很少有在发布时以方形框或实际网页上的黑色菱形出现。

我尝试尽可能地更改字符集,但这并没有解决我的问题。

当其他人遇到这个并有一个解决方法来解决它?

4

2 回答 2

1

这是因为所见即所得的编辑器会渲染 html 实体,例如 © 到他们的字符值(版权符号),就像在所见即所得编辑器中显示为图像一样。我在使用不同的基于 jQuery 的编辑器时遇到了类似的问题。

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

也许这会有所帮助?这是为 jwysiwyg 制作的实用功能,旨在将内容发布为他们的 html 实体代码。尽管动态使用<code>标签的想法可能也很有效:P,您只需在服务器上使用strip_tags。

于 2011-06-18T14:45:52.717 回答
0

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

当我第一次加载这个页面时,我注意到©并且我对你想要做什么感到困惑。然后,你编辑了它,© 变成了&#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);
    }
  });

正如我所说,我没有尝试过。因此,如果它适合您,请使用您最终使用的内容编辑您的答案。

于 2011-06-18T14:46:22.853 回答