2

私たちのアプリケーションは、ckeditor を使用してユーザーフレンドリーな電子メールコンテンツを生成し、クライアントに電子メールを送信します。メールの内容はビジネスパーソンが作成しているため、HTML をまったく知りません。

だから私は ckeditorが単に生成するのではなく、自動的に<p>などの段落(要素)にインラインスタイルを追加することを望んでいます。<p style="line-height:20px;"><p>

生成された出力はメールで送信されるため、CSS ファイルを使用する機会はありません。<p>要素をラップしようとしましたが、「 line-height<table> 」プロパティをそのように変更できませんでした。gmail や yahoo などの電子メール サイトには要素の独自のスタイルが既にあるためです。考えられる各要素にインラインスタイルを使用する必要があり、これを達成する方法がわかりません。<p><p>

誰でも助けることができますか?

ありがとう

4

1 に答える 1

3

これを行うための設定や簡単なコード変更はありません。

ここに2つのアプローチがあります。

ユーザーに迷惑をかけたい場合は、これを行います (AlfonsoML のコメントを参照してください):
エディターでコンテンツが更新されるときにスタイリング 以外のことを行う柔軟性が必要な場合は<p>、「onchange」プラグインを使用するのが最善の方法です。 @AlfonsoML によって作成されました。ここからダウンロードできます:
CKEditor の onChange イベント

彼はそれを使用してエディターのコンテンツを別の場所に表示する方法を示してい<div>ます:
pass Ckeditor value to div text without html tags?


プラグインをインストールすると、次のようなことができます。

CKEDITOR.on('instanceCreated', function (e) {
    e.editor.on('change', function () {
        var editorContent = CKEDITOR.instances['TextAreaID'].getData();
        editorContent.replace('<p>', '<p style="line-height:20px;">');
        CKEDITOR.instances['TextAreaID'].setData(editorContent);
    });
});

より良いアプローチ:
スタイリング のみを行い<p>、コンテンツが変更されるたびにその関数を実行するオーバーヘッドを避けたい場合は、スタイルシートを読み込んで、次の<p>構成設定を使用してエディター内の要素にスタイルを適用できます。

config.contentsCss = '/css/mysitestyles.css';

次にonsubmit、フォームで関数を使用します。このようなもの:

<form name="ff" id="ff" action="xx" method="POST" onsubmit="return doSubmit();">

関数:

function doSubmit() {
    var emailContent = $('textarea#TextAreaID').val();        
    emailContent.replace('<p>', '<p style="line-height:20px;">');
    $('textarea#TextAreaID').val(editorContent);
};
于 2012-07-18T12:31:23.100 に答える