TinyMCEボタンを使って文字の間隔をhttp://fiddle.tinymce.com/Z9eaab/31に増やしました。一番下のテキスト領域に "some text"という単語を入力し、 "some"を選択して "Increase letter spacing"ボタンを複数回押すと、文字間隔は初めて増加します。 2番目の単語「テキスト」を選択すると、「文字間隔を広げる」を押すたびに間隔が広がります。それはすべきだ。TinyMCE 4.xボタンを押して文字の間隔を広げようとしました
9行目のconsole.logには、読み込まれている現在の間隔に最後の増加が反映されていないため、最初の行をやり直していることがわかります。
<script type="text/javascript">
tinymce.PluginManager.add('example', function(editor, url) {
// Add a button that opens a window
editor.addButton('example1', {
text: 'Increase letter spacing',
icon: false,
onclick: function() {
var currentSpacing = new Number($(tinyMCE.activeEditor.selection.getNode()).css('letter-spacing').replace('px', ''));
console.log("spacing read is" + currentSpacing);
currentSpacing = currentSpacing + 1;
tinymce.activeEditor.formatter.register('increaseSpacing', {
inline: 'span',
styles: {
'letter-spacing': currentSpacing + 'px'
}
});
tinymce.activeEditor.formatter.apply('increaseSpacing');
}
});
editor.addButton('example2', {
text: 'Decrease letter spacing',
icon: false,
onclick: function() {
var currentSpacing = new Number($(tinyMCE.activeEditor.selection.getNode()).css('letter-spacing').replace('px', ''));
currentSpacing = currentSpacing - 1;
tinymce.activeEditor.formatter.register('decreaseSpacing', {
inline: 'span',
styles: {
'letter-spacing': currentSpacing + 'px'
}
});
tinymce.activeEditor.formatter.apply('decreaseSpacing');
}
});
// Adds a menu item to the tools menu
editor.addMenuItem('example', {
text: 'Example plugin',
context: 'tools',
onclick: function() {
// Open window with a specific url
editor.windowManager.open({
title: 'TinyMCE site',
url: 'http://www.tinymce.com',
width: 400,
height: 300,
buttons: [{
text: 'Close',
onclick: 'close'
}]
});
}
});
});
tinymce.init({
selector: "textarea",
plugins: "example",
toolbar: "example1 example2 undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
});
</script>
<form method="post" action="dump.php">
<textarea name="content"></textarea>
</form>
誰もが何が起こっているのか知っていますか?
あなたは、私が 'に登録済みのフォーマッタの宣言を移動していることに気づくでしょうが、 tinymce.init'セクションを使用してパフォーマンスを向上させることができます。そのため、すべてのボタンをクリックして再登録することはありません。私は動的な値を 'formatter.apply()'呼び出しで渡します。 incr/decr関数から共通コードを抽出することをお勧めします。ちょうど提案。 –
ありがとう!優秀! – Steve