Я столкнулся с той же проблемой, я обнаружил, что https://www.sitepoint.com/6-jquery-cursor-functions/ имеет решение.Вот 6 методов, которые позволят вам получить / установить позицию курсора в поле ввода / текстовой области.Я полагаю, что это будет работать и для редактируемых полей контента!
Это было очень полезно, поскольку ошибка была показана только для комбинации IE и Windows 7.
Вот мой код "До"
$body.on('input paste','.replace-special-chars',function () {
let coma = /‚/g;
let doubleQuotes = /[“”]/g;
let singleQuotes = /[‘’]/g;
$(this).val($(this).val().replace(doubleQuotes,'"'));
$(this).val($(this).val().replace(coma,','));
$(this).val($(this).val().replace(singleQuotes,"'"));
$(this).val($(this).val().replace(/[^\x00-\xff]/g, '- '));
});
и мой код после, который использует методы jquery, которые я нашел на сайте, который я указывал выше
$body.on('input paste','.replace-special-chars',function () {
let position = $(this).getCursorPosition();
let coma = /‚/g;
let doubleQuotes = /[“”]/g;
let singleQuotes = /[‘’]/g;
$(this).val($(this).val().replace(doubleQuotes,'"'));
$(this).val($(this).val().replace(coma,','));
$(this).val($(this).val().replace(singleQuotes,"'"));
$(this).val($(this).val().replace(/[^\x00-\xff]/g, '- '));
$(this).setCursorPosition(position);
});