jsファイルには、変数に格納するhtmlコンポーネントのリストがあります。フロントエンドには、「コンポーネント」クラスと特定のIDを持つ複数のボタンがあります。
次に、各「.component」IDが特定のhtmlブロックに対応するようにスイッチ機能を実行しようとします。ボタンをクリックするたびに、htmlコードが変数「code」に保存/追加される必要があります。
そして最後の目標は、ボタンをクリックすると、対応するhtmlがtinyCMEエディターに挿入されるように関数を作成することです。
これは可能ですか?
これが私のコードの簡略版です。
function build_email(all_components) {
var brand_centered='\n'
+'<tr>\n'
+' <td align="center" style="font-size:0; padding: 10px 0; background-color:#EDEEF6;" valign="top">\n'
+' <table border="0" cellpadding="0" cellspacing="0" role="presentation" width="100%">\n'
+' <tr>\n'
+' <td style="padding:10px 0;text-align: center"><img alt="" border="0" width="60" height="50" src="myimage.png" style="width:60px;height:50px"></td>\n'
+' </tr>\n'
+' </table>\n'
+' </td>\n'
+'</tr>\n'
etc...
var total_components = component_list.length;
for (var i = 0; i <= total_components - 1; i++) {
switch (component_list[i]) {
case "add-brand-centered" :
code += brand_centered;
break;
case "add-brand-left" :
code += brand_left;
break;
etc...
}
}
$('.component').each(function(){
tinymce.activeEditor.setContent(code);
})
setContent()およびgetContent()関数を試してください。
たとえば、1つのボタンと1つのテキストエリアを使用します。
<button type="button" id="add">Add components</button>
<textarea></textarea>
そして、このJS / Jqueryコード:
tinymce.init({
selector: 'textarea',
setup: function(editor) {
editor.on('init', function(e) {
tinymce.activeEditor.setContent("<b>Hello world</b>");
});
}
});
var header = '<div class="display-1">Header</div>';
var body = '<div class="container">body</div>';
var footer = '<div class="footer">footer</div>';
var myComponents = [header,footer,footer];
document.getElementById('add').addEventListener('click', function(){
let oldContent = tinymce.activeEditor.getContent();
for(let i = 0; i < myComponents.length; i++){
oldContent += myComponents[i];
}
tinymce.activeEditor.setContent(oldContent);
});
編集部分
わかりました。常に同じフッターと同じヘッダーがあります。追加されたすべてのカスタムパーツを追跡するための配列を作成できます。
var myComponents = [];
そして、3つの新しいボタン(add-1、add-2、add-3)があります。
var custom1 = "<p>Hello</p>";
var custom2 = "<span>Hello world</span>";
var custom3 = "<b>Strong</b>";
document.getElementById('add-1').addEventListener('click', function(){
myComponents.push(custom1);
updateEdition();
});
document.getElementById('add-2').addEventListener('click', function(){
myComponents.push(custom2);
updateEdition();
});
document.getElementById('add-3').addEventListener('click', function(){
myComponents.push(custom3);
updateEdition();
});
エディションを更新するための新しい関数を作成しました。
function updateEdition(){
let edition = header;
for(let i = 0; i < myComponents.length; i++){
edition += myComponents[i];
}
edition += footer;
tinymce.activeEditor.setContent(edition);
}
エディションが終了したら、tinymce.activeEditor.save()を呼び出して、テキストをhtmlドキュメントに保存します。たとえば、フォームを使用している場合は、Submitイベントでsave()を呼び出します。
TinyMCE.cloudからのその他の例:
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加