我想将 CodeMirror 用于我网站上的两个页面。第一个是代码片段上传页面,第二个是查看代码片段的页面。在第二页上,我想将 CodeMirror 设为只读,显然是为了不允许用户更改其内容。
因此,第一页(上传页面)完美无缺,它以应有的方式显示插件,并且按应有的方式工作。
这是它的图像:
这是它的javascript:(它是一个外部脚本文件)
var UploadPageCodeMirror = CodeMirror.fromTextArea(document.getElementById('CodeSnippetBody'), { mode: "javascript", theme: "default", lineNumbers: true });
HTML:
<textarea rows="15" cols="70" name="CodeSnippetBody" id="CodeSnippetBody" @Validation.For("CodeSnippetBody")></textarea>
该问题仅在第二页上仍然存在,用户可以在其中查看上传的片段。由于某种原因,它不适用于不同的 textarea ID,尽管我正确引用了它。如果我出于某种原因将此文本区域的 ID 更改为上传页面 (CodeSnippetBody) 上的 ID,它可以工作,但我无法更改它的属性。
这是js:(相同的外部脚本文件)
var ReadOnlyCodeMirror = CodeMirror.fromTextArea(document.getElementById('CodeSnippetBodyReadOnly'), { mode: "javascript", theme: "default", lineNumbers: true });
这是HTML:
<textarea id="CodeSnippetBodyReadOnly">@code["CodeSnippetBody"]</textarea>
它显示如下:
如您所见,插件不会初始化
如果我将此文本区域的 ID 更改为 CodeSnippetBody,则它与上传页面的 ID 匹配,它可以工作:
<textarea id="CodeSnippetBody">@code["CodeSnippetBody"]</textarea>
显示如下:
正如我之前所说,这个问题是我无法将其属性更改为 ReadOnly。
我究竟做错了什么?
我希望我给了你足够的信息,如果你需要更多,请询问,我会提供。谢谢!