var _gquill;
var _gform;
function quillFunctionSetup(quillvar, quillformvar, quillsubmitvar) {
_gquill = new Quill("#".concat(quillvar), {
modules: { toolbar: true },
theme: 'snow'
});
_gform = document.getElementById(quillformvar);
_gform.onsubmit = function(quillsubmitvar, _gquill) {
var about = document.getElementById(quillsubmitvar);
about.value = _gquill.container.firstChild.innerHTML;
return false;
};
}
<script src="https://cdn.quilljs.com/1.0.0/quill.js"></script>
<link href="https://cdn.quilljs.com/1.0.0/quill.snow.css" rel="stylesheet">
<form action="{% url 'SecurityTarget:stview' ST_Title.id %}" method="post" id="overviewform">
<div id="quilleditor" >{{ST_Title.OverviewDescription}}</div>
<input type="hidden" name = "new_overview" id="new_overview"/>
<input type="submit" value="Save Toe Overview" />
</form>
<script type="text/javascript">quillFunctionSetup("quilleditor", "overviewform", "new_overview");</script>
所以这行不通,我很难理解为什么。因此,笔芯部分工作正常,并且当它是与html一致定义的脚本时,一切都很好。我将其移至页眉,然后又没有任何作用,因为尚未定义元素?所以我将其包装在一个函数中并内联调用,但是后来我的提交按钮停止了运行,我仍然不知道为什么,但是
function(quillsubmitvar, _gquill)
在上面的行中添加quillsubmitvar(它最初没有在其中起作用),这在原始函数的范围内是没有任何意义的。
仍然使用此代码
about.value
从来没有分配?
在此编辑器中运行此脚本时,也会显示未定义的函数引用
quillFunctionSetup
但是它是在标头中定义的,并且可以在我的网站上运行?我很困惑,非常感谢您的帮助。
最佳答案
问题在以下行中:_gform.onsubmit = function(quillsubmitvar, _gquill) {
在这种情况下,不会传递quillsubmitvar
和_gquill
,它们将作为要传递给该函数的参数的名称列出,与第一个声明起作用的方式相同function quillFunctionSetup(quillvar, quillformvar, quillsubmitvar) {
Javascript具有词法范围,这意味着quillFunctionSetup
中的任何内容都已经可以访问该闭包中定义的其他变量以及该闭包之外的任何内容,但是在其他位置的单独闭包中则没有任何定义(在这种情况下不适用)。
_gform.onsubmit = function() {
var about = document.getElementById(quillsubmitvar);
about.value = _gquill.container.firstChild.innerHTML;
return false;
};
应该能按预期工作