原js地址:http://tool.114la.com/js/HTML-Beautify.js
测试dome:http://tool.114la.com/jsformat.html    该js转换后的内联标签(如 a span button)换行了,如果代码太长就显得很浪费空间,请高手帮忙看看怎样把内联标签改为不换行。

解决方案 »

  1.   

    简单调了一下,没那么好处理,想合心意恐怕只有自己写了。
    var regInline = /^\s*<\/?(?:a|span|strong|b|u|i|label|legend|font|option|img|em|button|script|title|meta|link)\b/,isInline=false;    while (true) {
            var t = multi_parser.get_token();
            multi_parser.token_text = t[0];
            multi_parser.token_type = t[1];
            if (multi_parser.token_type === 'TK_EOF') {
                break;
            }
            switch (multi_parser.token_type) {
            case 'TK_TAG_START':
            case 'TK_TAG_SCRIPT':
            case 'TK_TAG_STYLE':
    isInline = regInline.test(multi_parser.token_text);
    // if(!isInline){
    multi_parser.print_newline(false, multi_parser.output);
    // }
                multi_parser.print_token(multi_parser.token_text);
    if(!isInline){
    multi_parser.indent();
    }
                multi_parser.current_mode = 'CONTENT';
                break;
            case 'TK_TAG_END':
    isInline = regInline.test(multi_parser.token_text);
    if(!isInline){
    multi_parser.print_newline(true, multi_parser.output);
    }
                multi_parser.print_token(multi_parser.token_text);
                multi_parser.current_mode = 'CONTENT';
                break;
            case 'TK_TAG_SINGLE':
                multi_parser.print_newline(false, multi_parser.output);
                multi_parser.print_token(multi_parser.token_text);
                multi_parser.current_mode = 'CONTENT';
                break;
            case 'TK_CONTENT':
                if (multi_parser.token_text !== '') {
    //isInline = regInline.test(multi_parser.token_text);
    if(!isInline){
    multi_parser.print_newline(false, multi_parser.output);
    }
                    multi_parser.print_token(multi_parser.token_text);
                }
                multi_parser.current_mode = 'TAG';
                break;
            }
            multi_parser.last_token = multi_parser.token_type;
            multi_parser.last_text = multi_parser.token_text;
        }