a11ychecker 运行 如何处理 CKEDITOR.dom.element 更改后的内容?

How can a11ychecker run process on content after CKEDITOR.dom.element change?

我正在尝试用 class span.numberstring|span.datestring 标记数字字符串和日期字符串,这样 CKeditor A11ychecker 插件就会找到它们并呈现一个 Quickfix 表单来填充 <abbr title> 带有屏幕可读文本的属性。当 'beforeCommandExec' 等于 'a11ychecker' 时,我使用以下脚本 运行 进行正则表达式搜索。替换编辑器内容后,'CKEDITOR.dom.element'显示为'null',错误响应为: plugin.js?t=K87C:32 Uncaught TypeError: Cannot read property 'getPosition' of null

txtGroupEditor.on('beforeCommandExec',function(event){

               var commandName = event.data.name;

            if(commandName == 'a11ychecker'){

                var dataRegex=/([0-9]{4,4})(?!<\/span>)/g,

                string=this.getData(),

                m;

                do {
                   m = dataRegex.exec(string);

                    if (m) {

                        string=string.replace(m[0],'<span class="numberstring">' + m[0] + '</span>');

                    }

                } while (m);

                this.setData(string);
            }
        });

这是时间问题吗?我曾尝试在正则表达式操作完成后触发 a11ychecker 进程,但这也不起作用,而且它似乎仍然解除了与实例的绑定。预先感谢您的帮助。

没有正则表达式运算的结果

正则表达式运算的结果

结论:当点击 a11ychecker 按钮时,按顺序强制执行两个操作 运行(标记然后 a11ychecker),似乎有其挑战。

解决方案:将标记操作拆分到自己的按钮中似乎更有效、更可靠。现在,在启用 a11ychecker 按钮之前,需要标记操作 运行。当编辑器内容在 'key' 下被激活时,a11ychecker 按钮将被禁用以假定内容已被更改并且应该通过标记操作再次 运行。