Вы можете изменить путь к URL на лету, основываясь на событиях клика по статьям. Помните, что при назначении / изменении чего-либо в пределах window.location
страница автоматически перезагрузится.
document.querySelectorAll("article").forEach(article => {
article.addEventListener("click", function() {
let url = window.location,
path = url.pathname,
articleID = article.id,
articlePill = "-Z" + articleID,
articleRE = /-Z(\w+)/g,
articles = path.match(articleRE);
if (!articles) articles = [];
if (articles.includes(articlePill)) {
articles = articles.filter(article => article != articlePill);
} else {
articles.push(articlePill);
}
url.pathname = articles.join("");
});
});
Пример:
let url = new URL("http://www.example.com/cyegyufy-ZfirstArticle-ZsecondArticle");
// window.location.pathname
document.querySelectorAll("article").forEach(article => {
article.addEventListener("click", function() {
let path = url.pathname,
articleID = article.id,
articlePill = "-Z" + articleID,
articleRE = /-Z(\w+)/g,
articles = path.match(articleRE);
if (!articles) articles = [];
if (articles.includes(articlePill)) {
articles = articles.filter(article => article != articlePill);
} else {
articles.push(articlePill);
}
url.pathname = articles.join("");
console.log(url);
});
});
article {
height: 100px;
margin: 5px;
width: 100px;
border: 1px solid black;
}
<article id="firstArticle">
<h6>firstArticle</h6>
</article>
<article id="secondArticle">
<h6>secondArticle</h6>
</article>