1

我想将 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。

我究竟做错了什么?

我希望我给了你足够的信息,如果你需要更多,请询问,我会提供。谢谢!

4

0 回答 0