0

私はこの問題が何であるかについて迷っています。jWysiwygというプラグインでjQuery longを使っています。

HTML エンティティ名または番号を入力する©©、エディター内で入力すると、実際の文字に戻ります。これには機能がなく、キャラクター設定に違いないと思います。

一部のキャラクターではこれで問題ありませんが、すべてではありません.投稿時に実際のWebページに正方形のボックスまたは黒いひし形として表示されるキャラクターはほとんどありません.

可能な限り文字セットを変更しようとしましたが、これで問題が解決しません。

他の誰かがこれに遭遇し、それを修正するための回避策がありますか?

4

2 に答える 2

1

これは、WYSIWYG エディターが © などの html エンティティをレンダリングするためです。WYSIWYG エディターで画像として表示されるのと同じ方法で、文字値 (著作権記号) に変換されます。別の jQuery ベースのエディターでも同様の問題がありました。

これを修正できる唯一の方法は、送信時にそれを html エンティティに戻すか、おそらく適切に動作する可能性が低いと&思います。エディターをロードするときに、すべての 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 に答える