创建contentEditable div时,包括Buefy / Bulma样式表,在Safari中打开网页,将光标置于可编辑div中,然后尝试输入文本,Safari会冻结。
触发错误的HTML:
<div contentEditable="true"></div>
我正在使用Safari v13.0.3和Buefy v0.8.8。
创建contentEditable div时,包括Buefy / Bulma样式表,在Safari中打开网页,将光标置于可编辑div中,然后尝试输入文本,Safari会冻结。
触发错误的HTML:
<div contentEditable="true"></div>
我正在使用Safari v13.0.3和Buefy v0.8.8。
结果证明这是WebKit中的错误:https://bugs.webkit.org/show_bug.cgi?id=202262
使用可编辑内容的div,当文本渲染设置为optimizeLegibility
且字体家族包含-apple-system
时,将触发该错误。 Buefy / Bulma使用了这种文本渲染和字体系列组合。在样式表中:
html {
background-color: white;
font-size: 16px;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
min-width: 300px;
overflow-x: hidden;
overflow-y: scroll;
text-rendering: optimizeLegibility;
text-size-adjust: 100%;
}
...
body,button,input,select,textarea {
font-family: BlinkMacSystemFont,-apple-system,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue","Helvetica","Arial",sans-serif;
}
解决方法是覆盖可编辑div的字体系列。我包括Bulma样式表中的字体,除外 -apple-system
,并且Safari不会崩溃:
<div contentEditable="true"
style="font-family: BlinkMacSystemFont,'Segoe UI','Roboto','Oxygen','Ubuntu','Cantarell','Fira Sans','Droid Sans','Helvetica Neue','Helvetica','Arial',sans-serif;"></div>