我正在构建一个WYSIWYG编辑器,我希望根据contenteditable div中的选定文本更改按钮值。我已经提出了以下jquery代码,它在Chrome和Microsoft Edge中运行良好,但在Firefox中无效。
function isHeadingButtonActive(e) {
$('#btnShowHeadingControls').removeClass('activeButton');
var e = event || window.event;
var node = e.target;
var buttontext = 'Paragraph';
while(node.nodeName != 'DIV') {
if (node.nodeName == 'H1') {
buttontext = 'Heading 1';
} else
if (node.nodeName == 'H2') {
buttontext = 'Heading 2';
} else
if (node.nodeName == 'H3') {
buttontext = 'Heading 3';
} else
if (node.nodeName == 'H4') {
buttontext = 'Heading 4';
} else
if (node.nodeName == 'H5') {
buttontext = 'Heading 5';
} else
if (node.nodeName == 'H6') {
buttontext = 'Heading 6';
}
$('#btnShowHeadingControls').addClass('activeButton');
$('#btnShowHeadingControls').val(buttontext);
node = node.parentNode;
}
}
如何在Firefox中使用?
使用Firebug进行调试时,收到此错误消息:
ReferenceError: event is not defined
答案 0 :(得分:0)
答案 1 :(得分:0)
我终于设法解决了这个问题。
问题是之前我在调用函数时没有将参数e
传递给函数:
isHeadingButtonActive();
为了解决这个问题,我只是将参数e
添加到函数中:
isHeadingButtonActive(e);