summernote 初始化时打印 "node is null"
summernote prints "node is null" when initialized
我正在使用 summernote v0.7.3
创建一个表格。
在 chrome 中工作正常,但在 firefox 中它给出错误 "node is null"。
<div id="${id}_summernote"></div>
<script type="text/javascript">
$(document).ready(function(){
var s_note = $('#${id}_summernote');
var summernote = s_note.summernote();
}
</script>
错误发生的点是..
var nodeLength = function (node) {
if (isText(node)) {
return node.nodeValue.length;
}
return node.childNodes.length;
};
是summernote.js
中的第614行。
自从node is null
之后,其他错误信息也出现了
ImagePopover/this.hide()
summernote.js:6152
ImagePopover/this.update()
summernote.js:6147
Context/this.invoke()
summernote.js:1687
Handle/this.update()
summernote.js:4903
Handle/this.events["summernote.mousedown"]()
summernote.js:4841
n.event.dispatch()
jquery-2.1.1.min.js:3
n.event.add/r.handle()
jquery-2.1.1.min.js:3
n.event.trigger()
jquery-2.1.1.min.js:3
.trigger/<()
jquery-2.1.1.min.js:3
.each()
jquery-2.1.1.min.js:2
n.prototype.each()
jquery-2.1.1.min.js:2
.trigger()
jquery-2.1.1.min.js:3
Context/this.triggerEvent()
summernote.js:1604
Editor/this.initialize/<()
summernote.js:3745
n.event.dispatch()
jquery-2.1.1.min.js:3
n.event.add/r.handle()
jquery-2.1.1.min.js:3
我应该怎么做才能解决这个问题?它发生在某些页面上,而不是全部。
感谢您的回答!
为了绕过这个错误,我将方法 $(document).ready()
更改为 document.addEventListener('DOMContentLoaded', function(){}, false)
。
这个的新来源
document.addEventListener('DOMContentLoaded', function(){
var s_note = $('#${id}_summernote');
var summernote = s_note.summernote({
height : 200
, toolbar: [
['style', ['style']],
['font', ['bold', 'italic', 'underline', 'clear']],
['fontname', ['fontname']],
['color', ['color']],
['para', ['ul', 'ol', 'paragraph']],
['height', ['height']],
['table', ['table']],
['insert', ['link', 'picture', 'hr']],
['view', ['fullscreen', 'codeview']],
['help', ['help']]
]
});
s_note.on("summernote.change", function (e) {
//do jobs for changing event
});
});
不幸的是,将 callbacks
添加到构造函数不起作用,因此使用 jquery 事件处理程序。
祝你有美好的一天! :D
我在这里找到了解决方案:https://github.com/summernote/summernote/issues/1667
要解决此问题,请像这样修改 summernote.js 中的 函数 nodeLength:
var nodeLength = function (node) {
if (node === null) {
return 0;
} else {
if (isText(node)) {
return node.nodeValue.length;
}
return node.childNodes.length;
}
};
我正在使用 summernote v0.7.3
创建一个表格。
在 chrome 中工作正常,但在 firefox 中它给出错误 "node is null"。
<div id="${id}_summernote"></div>
<script type="text/javascript">
$(document).ready(function(){
var s_note = $('#${id}_summernote');
var summernote = s_note.summernote();
}
</script>
错误发生的点是..
var nodeLength = function (node) {
if (isText(node)) {
return node.nodeValue.length;
}
return node.childNodes.length;
};
是summernote.js
中的第614行。
自从node is null
之后,其他错误信息也出现了
ImagePopover/this.hide()
summernote.js:6152
ImagePopover/this.update()
summernote.js:6147
Context/this.invoke()
summernote.js:1687
Handle/this.update()
summernote.js:4903
Handle/this.events["summernote.mousedown"]()
summernote.js:4841
n.event.dispatch()
jquery-2.1.1.min.js:3
n.event.add/r.handle()
jquery-2.1.1.min.js:3
n.event.trigger()
jquery-2.1.1.min.js:3
.trigger/<()
jquery-2.1.1.min.js:3
.each()
jquery-2.1.1.min.js:2
n.prototype.each()
jquery-2.1.1.min.js:2
.trigger()
jquery-2.1.1.min.js:3
Context/this.triggerEvent()
summernote.js:1604
Editor/this.initialize/<()
summernote.js:3745
n.event.dispatch()
jquery-2.1.1.min.js:3
n.event.add/r.handle()
jquery-2.1.1.min.js:3
我应该怎么做才能解决这个问题?它发生在某些页面上,而不是全部。
感谢您的回答!
为了绕过这个错误,我将方法 $(document).ready()
更改为 document.addEventListener('DOMContentLoaded', function(){}, false)
。
这个的新来源
document.addEventListener('DOMContentLoaded', function(){
var s_note = $('#${id}_summernote');
var summernote = s_note.summernote({
height : 200
, toolbar: [
['style', ['style']],
['font', ['bold', 'italic', 'underline', 'clear']],
['fontname', ['fontname']],
['color', ['color']],
['para', ['ul', 'ol', 'paragraph']],
['height', ['height']],
['table', ['table']],
['insert', ['link', 'picture', 'hr']],
['view', ['fullscreen', 'codeview']],
['help', ['help']]
]
});
s_note.on("summernote.change", function (e) {
//do jobs for changing event
});
});
不幸的是,将 callbacks
添加到构造函数不起作用,因此使用 jquery 事件处理程序。
祝你有美好的一天! :D
我在这里找到了解决方案:https://github.com/summernote/summernote/issues/1667 要解决此问题,请像这样修改 summernote.js 中的 函数 nodeLength:
var nodeLength = function (node) {
if (node === null) {
return 0;
} else {
if (isText(node)) {
return node.nodeValue.length;
}
return node.childNodes.length;
}
};