HTML textarea 可以滚动但无法编辑?
HTML textarea with scroll but prevent editing?
我已将文本格式化为换行符。文本多于垂直放置,因此它会滚动。很好。
const securityMessage = 'Here's my text.\r\nHere's another line and so on.';
我需要在页面的滚动区域中显示文本,但有一个带有 HTML textarea
的模式,我的用户可以在其中编辑文本。
首先我尝试使用 textarea
,它工作正常但可以编辑。但是设置控件的 readonly
属性也不允许滚动,所以用户不能在不打开模式的情况下预览所有文本。
<textarea name="secMsg" formControlName="secMsg" cols="30" rows="15" class="form-control h-100" disabled>
</textarea>
我也尝试过使用 Angular:
的可滚动 DIV
<div class="secMsg" [innerHTML]="securityMessage"></div>
除了它不是 HTML 并且不识别字符串换行符。
所以,我的编辑器需要一个带换行符的纯字符串 textarea
但在无法编辑的滚动区域中显示此文本。
您的 div
解决方案会起作用,它只需要一些 CSS 来处理换行符。
css white-space
属性 是您正在寻找的,很可能 white-space: pre-line;
但您可以尝试其他选项以查看适合您的用例最好的。
https://developer.mozilla.org/en-US/docs/Web/CSS/white-space
我已将文本格式化为换行符。文本多于垂直放置,因此它会滚动。很好。
const securityMessage = 'Here's my text.\r\nHere's another line and so on.';
我需要在页面的滚动区域中显示文本,但有一个带有 HTML textarea
的模式,我的用户可以在其中编辑文本。
首先我尝试使用 textarea
,它工作正常但可以编辑。但是设置控件的 readonly
属性也不允许滚动,所以用户不能在不打开模式的情况下预览所有文本。
<textarea name="secMsg" formControlName="secMsg" cols="30" rows="15" class="form-control h-100" disabled>
</textarea>
我也尝试过使用 Angular:
的可滚动 DIV<div class="secMsg" [innerHTML]="securityMessage"></div>
除了它不是 HTML 并且不识别字符串换行符。
所以,我的编辑器需要一个带换行符的纯字符串 textarea
但在无法编辑的滚动区域中显示此文本。
您的 div
解决方案会起作用,它只需要一些 CSS 来处理换行符。
css white-space
属性 是您正在寻找的,很可能 white-space: pre-line;
但您可以尝试其他选项以查看适合您的用例最好的。
https://developer.mozilla.org/en-US/docs/Web/CSS/white-space