我正在使用此代码在内容可编辑HTML文档中插入新行:
execCommand("insertHTML", false, '\n');
这适用于我在Chrome和Safari中,但它会导致< BR>或其他浏览器中的新段落。因为我正在编辑<预>标签,我不希望浏览器将\ n更改为< BR取代。我怎么能这样做?
我已经尝试过使用range.insertNode()等函数或者在FireFox中操作insertBrOnReturn,但它总是一样的。如果没有浏览器更改我的输入,是否有办法在文档中插入\ n?
答案 0 :(得分:0)
我认为没有跨浏览器的工作方式来添加\n
...我对熟悉的内容并不熟悉但是因为它正在改变innerHTML你可能会做类似的事情
var currentContent = myContent; // "currentContent holds" the current content
execCommand("insertHTML", false, '\n'); // inserts the line break
if (newContent !== currentContent + '\n') { // "newContent" holds the content afterwards
console.log('use String.prototype.replace to replace created tag with "\n"');
}
答案 1 :(得分:0)
我假设您之后要保存已修改的内容,那么在获取代码内容时如何用<br>
替换所有\n
s?就像这样:
document.getElementById("editable").innerHTML.replace(/<br>/g, "\n");
编辑:您也可以使用innerText而不是innerHTML。这样做时,所有换行都会显示为<br>
标记(至少我在Chrome中得到了结果)。这个解决方案不是很好,但它至少总是一样的。