用简单的几行JS实现编辑器

<!DOCTYPE html>

<html>

    <head>

    <title>Editable WYSIWYG</title>

        <link href="bootstrap.css" rel="stylesheet">

        <link href="font-awesome.css" rel="stylesheet">

        <style>

            #editor {

                resize:vertical;

                overflow:auto;

                border:1px solid silver;

                border-radius:5px;

                min-height:100px;

                box-shadow: inset 0 0 10px silver;

                padding:1em;

            }

        </style>

    </head>

    <body>

        <div class="content">

            <div class="container-fluid">

                <div id='pad-wrapper'>

                    <div id="editparent">

                        <div id='editControls' class='span12' style='text-align:center; padding:5px;'>

                            <div class='btn-group'>

                                <a class='btn' data-role='undo' href='#'><i class='icon-undo'></i></a>

                                <a class='btn' data-role='redo' href='#'><i class='icon-repeat'></i></a>

                            </div>

                            <div class='btn-group'>

                                <a class='btn' data-role='bold' href='#'><b>Bold</b></a>

                                <a class='btn' data-role='italic' href='#'><em>Italic</em></a>

                                <a class='btn' data-role='underline' href='#'><u><b>U</b></u></a>

                                <a class='btn' data-role='strikeThrough' href='#'><strike>abc</strike></a>

                            </div>

                            <div class='btn-group'>

                                <a class='btn' data-role='justifyLeft' href='#'><i class='icon-align-left'></i></a>

                                <a class='btn' data-role='justifyCenter' href='#'><i class='icon-align-center'></i></a>

                                <a class='btn' data-role='justifyRight' href='#'><i class='icon-align-right'></i></a>

                                <a class='btn' data-role='justifyFull' href='#'><i class='icon-align-justify'></i></a>

                            </div>

                            <div class='btn-group'>

                                <a class='btn' data-role='indent' href='#'><i class='icon-indent-right'></i></a>

                                <a class='btn' data-role='outdent' href='#'><i class='icon-indent-left'></i></a>

                            </div>

                            <div class='btn-group'>

                                <a class='btn' data-role='insertUnorderedList' href='#'><i class='icon-list-ul'></i></a>

                                <a class='btn' data-role='insertOrderedList' href='#'><i class='icon-list-ol'></i></a>

                            </div>

                            <div class='btn-group'>

                                <a class='btn' data-role='h1' href='#'>h<sup>1</sup></a>

                                <a class='btn' data-role='h2' href='#'>h<sup>2</sup></a>

                                <a class='btn' data-role='p' href='#'>p</a>

                            </div>

                            <div class='btn-group'>

                                <a class='btn' data-role='subscript' href='#'><i class='icon-subscript'></i></a>

                                <a class='btn' data-role='superscript' href='#'><i class='icon-superscript'></i></a>

                            </div>

                        </div>

                        <div id='editor' class='span12' style='' contenteditable>

                            <h1>This is a title!</h1>

                            <p>This is just some example text to start us off</p>

                        </div>

                    </div>

                </div>

            </div>

        </div>

        <script src="jquery.min.js"></script>

        <script src="bootstrap.min.js"></script>

        <script>

 

            $(function() {

                $('#editControls a').click(function(e) {

                    switch($(this).data('role')) {

                        case 'h1':

                        case 'h2':

                        case 'p':

                            document.execCommand('formatBlock', false, '<' + $(this).data('role') + '>');

                            break;

                        default:

                            document.execCommand($(this).data('role'), false, null);

                            break;

                    }

                    

                })

            });

        </script>

    </body>

</html>

posted on 2013-08-20 09:36  梅&&梅  阅读(315)  评论(0编辑  收藏  举报

导航