Требует jQuery и анимирует к тегу привязки с указанным именем вместо идентификатора, при добавлении хеша к URL браузера. Также фиксирует ошибку в большинстве ответов с jQuery, где знак # не снабжается префиксом обратную косую черту выхода. Кнопка "Назад", к сожалению, не перешла назад правильно к предыдущим ссылкам хеша...
$('a[href*=\\#]').click(function (event)
{
let hashValue = $(this).attr('href');
let name = hashValue.substring(1);
let target = $('[name="' + name + '"]');
$('html, body').animate({ scrollTop: target.offset().top }, 500);
event.preventDefault();
history.pushState(null, null, hashValue);
});
Это сообщение описывает ту же проблему (которая была и у меня), а ответ говорит
попросить синтаксический анализатор заменить значения сущностей
Это означает, что когда вы настраиваете свой контекст, установите параметр следующим образом:
xmlParserCtxtPtr context = xmlCreatePushParserCtxt(&yourSAXHandlerStruct, self, NULL, 0, NULL);
xmlCtxtUseOptions(context, XML_PARSE_NOENT);