Tinymce html5 placeholder by reading attribute from textarea

前端 未结 8 538
北恋
北恋 2020-12-31 19:41

For standard textareas I use this plugin to create a placeholder. How can I extend tinymce so that this works in this way also.

E.g the default value is read from the

8条回答
  •  伪装坚强ぢ
    2020-12-31 20:36

    I was getting an error if there was no placeholder attribute.

    I combined the code from this answer: jQuery hasAttr checking to see if there is an attribute on an element to get the amended code below which deals with that scenario:

    setup: function(ed) {
    
    // Set placeholder
    var tinymce_placeholder = $('#'+ed.id);
    var attr = tinymce_placeholder.attr('placeholder');
    
    // For some browsers, `attr` is undefined; for others,
    // `attr` is false.  Check for both.
        if (typeof attr !== 'undefined' && attr !== false) {
            var is_default = false;
    
            ed.onInit.add(function(ed) {
                // get the current content
                var cont = ed.getContent();
    
                // If its empty and we have a placeholder set the value
                if(cont.length == 0){
                    ed.setContent(tinymce_placeholder.attr("placeholder"));
    
                    // Get updated content
                    cont = tinymce_placeholder.attr("placeholder");
                }
    
                // convert to plain text and compare strings
                is_default = (cont == tinymce_placeholder.attr("placeholder"));
    
                // nothing to do
                if (!is_default){
                    return;
                }
            });
    
            ed.onMouseDown.add(function(ed,e) {
                // replace the default content on focus if the same as original placeholder
                if (is_default){
                    ed.setContent('');
                }
            });
        }
    }
    

提交回复
热议问题