Bootstrap modal zmiana urla

Pokażę jak zmienić url po kliknięciu na button otwierający modalny popup w Bootstrap. Załóżmy, że po klinieciu chcemy pokazać popup oraz chcemy aby url w przeglądarce zmienił się na np. taki: example.com/lorem-ipsum#my-popup W tym celu wystarczy podmienić window.location.hash. W poniższym przykładzie url po hashu przechowujemy w atrybucie data-bs-target.

$('button[data-bs-toggle="modal"]').click(function() {
	window.location.hash = $(this).attr('data-bs-target');
});

function revertToOriginalURL() {
	var original = window.location.href.substr(0, window.location.href.indexOf('#'));
	history.replaceState({}, document.title, original);
}

$('.modal').on('hidden.bs.modal', function () {
	revertToOriginalURL();
});
Ponadto za pomocą revertToOriginalURL przywracamy poprzedni url w przeglądarce po zamknięciu popupa.