1、如果一行代码太长,就会造成代码块过宽,修改shCoreDefault.css,加上word-break:break-all:
.syntaxhighlighter { width: 100% !important; margin: .3em 0 .3em 0 !important; position: relative !important; overflow: auto !important; background-color: #f5f5f5 !important; border: 1px solid #ccc !important; border-radius: 4px !important; border-collapse: separate !important; word-break: break-all;/*新加的*/ }
2、双击以后文本框大小不对错位问题,修改shCore.js,为文本框增加高度:
/** * Quick code mouse double click handler. */ function quickCodeHandler(e) { var target = e.target, highlighterDiv = findParentElement(target, '.syntaxhighlighter'), container = findParentElement(target, '.container'), textarea = document.createElement('textarea'), highlighter ; if (!container || !highlighterDiv || findElement(container, 'textarea')) return; highlighter = getHighlighterById(highlighterDiv.id); // add source class name addClass(highlighterDiv, 'source'); // Have to go over each line and grab it's text, can't just do it on the // container because Firefox loses all \n where as Webkit doesn't. var lines = container.childNodes,code = []; for (var i = 0; i < lines.length; i++) code.push(lines[i].innerText || lines[i].textContent); // using \r instead of \r or \r\n makes this work equally well on IE, FF and Webkit code = code.join("\r"); // For Webkit browsers, replace nbsp with a breaking space code = code.replace(/\u00a0/g, " "); // inject <textarea/> tag textarea.appendChild(document.createTextNode(code)); textarea.style.height = "100%";//加上这一行,指定文本框的高度为100% container.appendChild(textarea); // preselect all text textarea.focus(); textarea.select(); // set up handler for lost focus attachEvent(textarea, "blur", function(e) { textarea.parentNode.removeChild(textarea); removeClass(highlighterDiv, 'source'); }); };