Contenteditable paragraph tag on enter

后端 未结 3 999
迷失自我
迷失自我 2020-12-30 05:01

I was wondering if there is an acceptable way to force all major browsers to insert paragraph tag instead of the default tag that they insert on pressing enter key when cont

相关标签:
3条回答
  • 2020-12-30 05:14

    As its build in the browser you can't change that behaviour. You could work around by detecting browser and replacing elements correspondingly. Very ugly, I know.

    Also check WhatWG for background: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-May/031577.html

    0 讨论(0)
  • 2020-12-30 05:26

    you can use document.execCommand('formatBlock', false, 'p'); in event like keypress or keydown, etc. to use paragraphs after enter press. For example:

    element.addEventListener('keypress', function(ev){
        if(ev.keyCode == '13')
            document.execCommand('formatBlock', false, 'p');
    }, false);
    
    0 讨论(0)
  • 2020-12-30 05:31

    I had this same problem and found the solution (CHROME, MSIE, FIREFOX), follow my code in the link.

    $(document).on('click','#myButton',function() {
        if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1)
            var str = $('#myDiv').html().replace(/<br>/gi,'').replace(/<div>/gi,'<br>').replace(/<\/div>/gi,'');
        else if (navigator.userAgent.toLowerCase().indexOf("firefox") > -1)
            var str = $('#myDiv').html().replace(/<\/br>/gi,'').replace(/<br>/gi,'<br>').replace(/<\/br>/gi,'');
        else if (navigator.userAgent.toLowerCase().indexOf("msie") == -1)
            var str = $('#myDiv').html().replace(/<br>/gi,'').replace(/<p>/gi,'<br>').replace(/<\/p>/gi,'');    
        $('#myDiv2').removeClass('invisible').addClass('visible').text(str);
        $('#myDiv3').removeClass('invisible').addClass('visible').html(str);
    });
    

    https://jsfiddle.net/kzkxo70L/1/

    0 讨论(0)
提交回复
热议问题