我希望用户能够输入内容可编辑的div,按回车(或到行尾),然后将其文本收集到变量中,并将光标放在换行符上,这对于任何文本编辑器。我有一个用于检查这些情况的事件列表器:
writerId.addEventListener('keydown', function(event){
if(event.key === "Enter" || document.getElementById("writer").offsetWidth >= "570") {
if(initialState === true) {
writtingContent = writerId.innerHTML;
blurId.innerHTML = writtingContent ;
writerId.innerHTML = "";
initialState = false;
} else {
writtingContent = writtingContent + writerId.innerHTML;
blurId.innerHTML = writtingContent ;
writerId.innerHTML = "";
}
}
});
新行可在Chrome,FireFox中使用,但不能在Safari中使用。
最初,我将其添加为Safari的解决方法:
if(navigator.userAgent.indexOf("Safari") != -1) {
writtingContent = writtingContent + "</br>";
console.log(navigator.userAgent);
}
但是它破坏了其他浏览器(尤其是Opera)的功能,并且我读到navigator.userAgent
并不是解决浏览器特定问题的最佳方法。
我已经看到了一些功能检测的变通方法,但是我不确定是否有必要。如果有更简单的方法,我将很乐意。也许,我忽略了一些东西。