2016-07-21 6 views
0

私は誰かが私を助けることができる非常に興味深い状況があります。 現在のところ、cold fusion(ただしこれは関係ありません)を使用してコード化されたクライアント用のカスタムメールキャンペーンシステムがあります。 とにかく、キャンペーンデザインのビットに表示されるのは、すべてのセクションのCKEditorです複数のセクションが必要です)。 ここで私の問題は、クライアントが画像に幅を指定しない場合があります。 、時には幅5k +の画像を使用することがあります。 は、だから私は、電子メールテンプレートを持っている:Gmailの、最も人気のある電子メールクライアントの一つを除いて...素晴らしい作品CKEditorに画像を挿入した後にJavaScriptスニペットを実行する方法はありますか?

<style type="text/css"> 
     img { 
      max-width: 100% !important; 
      height: auto !important; 
     } 
    </style> 

を。

document.getElementsByTagName("img")[0].setAttribute("max-width", "800px"); 
document.getElementsByTagName("img")[0].setAttribute("height", "auto"); 

または

img.style.maxWidth = "800px"; 
img.style.height = "auto"; 
を:画像はリッチテキストエディタに挿入した後、このスニペットが実行されるかどうどこかCKEditorバージョンでは、それは本当にいいだろう:私は夢を見た何

それは可能ですか?または私はちょうど私の車輪を回転させていますか? あなたの時間と忍耐力に感謝します!

+1

イメージプラグインのダイアログ(image.js)を使用して変更できます(おそらく 'setupDimention'機能)。非圧縮バージョンは、CKEditorサイトで入手できます。 –

答えて

1

イメージがオーバーサイズされ、送信前に正しくスケーリングする必要があるため、問題を修正することを提案していますが、そのようにしたい場合は、CKEditorの出力フィルタを作成できます。この沿っ
何か:(未テスト)

var dataProcessor = editor.dataProcessor, 
    htmlFilter = dataProcessor && dataProcessor.htmlFilter; 

// htmlFilter : conversion from internal data to html output. 
htmlFilter.addRules({ 
    elements : 
    { 
     'img' : function(element) { 

      element.attributes.style = 'max-width: 800px; height: auto'; 

      return element; 
     } 
    } 
}); 

は明らかに正しい解を最大に画像を縮小することです:あなたは、あなたのシステム上、あるいはそれがアップロードされる前に保存し800ピクセル。

関連する問題