Safari在按Enter键时不会添加中断

时间:2018-08-07 20:30:00

标签: javascript html5 cross-browser

我希望用户能够输入内容可编辑的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并不是解决浏览器特定问题的最佳方法。

我已经看到了一些功能检测的变通方法,但是我不确定是否有必要。如果有更简单的方法,我将很乐意。也许,我忽略了一些东西。

0 个答案:

没有答案