Как удалить автопробрасываемые url параметры из ссылок на странице
Published on 13 December, 2023 | Сниппеты с кодом | 2,079 views
Скрипт удаляет все параметры указанные в массиве paramsToRemove.
В примере ниже удаляются ['_ga', '_ym_uid'].
<script>
document.addEventListener('DOMContentLoaded', function() {
// Function to remove specified query parameters from a URL
function removeQueryParams(url, paramsToRemove) {
let urlObj = new URL(url);
paramsToRemove.forEach(param => urlObj.searchParams.delete(param));
return urlObj.href;
}
// Function to update URLs in the onclick attribute
function updateOnClickAttribute(element, paramsToRemove) {
const onClickContent = element.getAttribute('onclick');
if (!onClickContent) return;
// Replace URLs in the onclick attribute
const updatedOnClick = onClickContent.replace(/(https?:\/\/[^\s]+)/g, function(match) {
return removeQueryParams(match, paramsToRemove);
});
element.setAttribute('onclick', updatedOnClick);
}
// Array of query parameters to be removed
const paramsToRemove = ['_ga', '_ym_uid'];
// Select all div elements with 'data-biolink-block-id' attribute
const divElements = document.querySelectorAll('div[data-biolink-block-id]');
// Iterate over the div elements and find nested anchor tags
divElements.forEach(div => {
const anchorElements = div.querySelectorAll('a');
// Update href and onclick attributes for each anchor tag
anchorElements.forEach(anchor => {
if (anchor.href && !anchor.href.includes('#carousel_block_')) {
anchor.href = removeQueryParams(anchor.href, paramsToRemove);
}
updateOnClickAttribute(anchor, paramsToRemove);
});
});
});
</script>
Last updated on: 15 December, 2023