【发布时间】:2013-09-16 12:57:06
【问题描述】:
我正在使用 Codemirror v3.16,我正在尝试找出如何杀死我的 codemirror 实例?基本上,当我页面上的文本区域以模式打开时,codemirror 会触发。关闭这个模态,我需要杀死实例,否则当我重新打开模态时,我得到两个文本区域。
有人可以帮忙吗?
【问题讨论】:
标签: javascript codemirror
我正在使用 Codemirror v3.16,我正在尝试找出如何杀死我的 codemirror 实例?基本上,当我页面上的文本区域以模式打开时,codemirror 会触发。关闭这个模态,我需要杀死实例,否则当我重新打开模态时,我得到两个文本区域。
有人可以帮忙吗?
【问题讨论】:
标签: javascript codemirror
如果 CodeMirror 实例是使用CodeMirror.fromTextArea 创建的,您可以使用其toTextArea 方法将当前内容复制到其“镜像”文本区域并删除该实例。
假设您的 CM 实例的 id 为“CMEditor”:
CM = document.getElementById('CMEditor');
CM.CodeMirror.toTextArea();
或者,您可以在模式之外实例化 CM 实例,并在模式打开时隐藏和显示它。
【讨论】:
.toTextArea() is not a function,你能帮我解决这个问题吗?
当 CodeMirror 从 DOM 中删除时(并且您杀死了 JavaScript 可能持有的所有现有对它的引用),它将被垃圾收集。没有明确的“kill”方法,您只需停止引用它即可。
【讨论】:
上述答案仅适用于文本区域之上的 CM,但并非总是如此。这样更好:
cm.setOption("mode", "text/x-csrc");
cm.getWrapperElement().parentNode.removeChild(cm.getWrapperElement());
cm=null;
【讨论】:
cm.setOption("mode", "text/x-csrc");吗?
textarea。我也无法看到文本区域。我在这里做错了吗?请给点建议。
版本 5.3 或 05/2015 更新
CM = document.getElementById('CMEditor');
CM.CodeMirror.toTextArea(); // is not working
CM.toTextArea(); // is making the magic happen
【讨论】:
.toTextArea is not a function。你能帮我解决这个问题吗?
我已经添加了上面的代码在模态关闭时运行,但它说 --- cmeditor.toTextArea 不是一个函数
$("body").on("hidden.bs.modal", ".modal", function()
{
$(this).removeData("bs.modal");
cmeditor = document.getElementById("email_template_text");
cmeditor.toTextArea();
});
【讨论】: