58 lines
1.3 KiB
JavaScript
Executable File
58 lines
1.3 KiB
JavaScript
Executable File
tinymce.PluginManager.add('placeholder', function (editor) {
|
|
editor.on('init', function () {
|
|
var label = new Label;
|
|
|
|
onBlur();
|
|
|
|
tinymce.DOM.bind(label.el, 'click', onFocus);
|
|
editor.on('focus', onFocus);
|
|
editor.on('blur', onBlur);
|
|
editor.on('change', onBlur);
|
|
|
|
function onFocus() {
|
|
label.hide();
|
|
editor.execCommand('mceFocus', false);
|
|
}
|
|
|
|
function onBlur() {
|
|
if (editor.getContent() == '') {
|
|
label.show();
|
|
} else {
|
|
label.hide();
|
|
}
|
|
}
|
|
});
|
|
|
|
var Label = function () {
|
|
// Create label el
|
|
this.text = editor.getElement().getAttribute("placeholder");
|
|
this.contentAreaContainer = editor.getContentAreaContainer();
|
|
|
|
tinymce.DOM.setStyle(this.contentAreaContainer, 'position', 'relative');
|
|
|
|
attrs = {
|
|
style: {
|
|
position: 'absolute',
|
|
top: 0,
|
|
left: 0,
|
|
bottom: 0,
|
|
color: '#6c868e',
|
|
'font-style': 'italic',
|
|
padding: '1%',
|
|
width: '98%',
|
|
overflow: 'hidden',
|
|
'white-space': 'normal'
|
|
}
|
|
};
|
|
this.el = tinymce.DOM.add(this.contentAreaContainer, "div", attrs, this.text);
|
|
}
|
|
|
|
Label.prototype.hide = function () {
|
|
tinymce.DOM.setStyle(this.el, 'display', 'none');
|
|
}
|
|
|
|
Label.prototype.show = function () {
|
|
tinymce.DOM.setStyle(this.el, 'display', '');
|
|
}
|
|
});
|