У нас есть большое количество веб-страниц в нашем блоге со ссылками с определенного домена (domain1.com) на другой домен (domain2.com).
Чтобы ничего не менять вручную, мы пробуем это без изменения ссылки (href).
Ссылки можно определить по их class, у них нет id.
<a href = "domain1.com/id/12345" class = "ChangeDomain">Click Here</a>
<a href = "/internal_url/" class = "">Click Here</a>
<script type = "text/javascript">
document.getElementsByClassName("ChangeDomain").onclick = function() {
document.getElementsByClassName("ChangeDomain").href = "domain2.com";
return false;
};
</script>
Есть еще одна вещь, которую я не знаю, как выполнить. меняется только корневой домен, а путь domain2.com должен совпадать с путем domain1.com. URL-адрес домен1.com/id/12345 становится домен2.com/id/12345



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если вы можете использовать jquery, то все hrefs могут быть изменены, когда документ будет готов таким образом.
$(document).ready(function(){
$('.ChangeDomain').each(function(){
var oldUrl = $(this).attr("href"); // Get current url
var newUrl = oldUrl.replace("domain1.com", "domain2.com"); // replace domain
$(this).attr("href", newUrl); // Set herf value
});
});
идея состоит в том, чтобы найти все hrefs, когда документ будет готов, и заменить текущий домен новым доменом
если вам действительно нужно использовать mousedown, измените его на:
$(document).ready(function(){
$('.ChangeDomain').mousedown(function(){
var oldUrl = $(this).attr("href"); // Get current url
var newUrl = oldUrl.replace("domain1.com", "domain2.com"); // replace domain
$(this).attr("href", newUrl); // Set herf value
});
});
Вместо того, чтобы добавлять событие с помощью onclick, добавьте с помощью addEventListener. Используйте replace, чтобы заменить слово domain1 на domain2.
const alinks = document.querySelectorAll(".ChangeDomain");
alinks.forEach(a => {
a.addEventListener('click', function(e) {
e.preventDefault();
const href = this.href;
const newHref = href.replace('domain1', 'domain2');
console.info(newHref);
})
}); <a href = "domain1.com/id/12345" class = "ChangeDomain">Click Here</a>
<a href = "/internal_url/" class = "">Click Here</a>Вы можете попробовать это
<script type = "text/javascript">
document.getElementsByClassName("ChangeDomain").onclick = function() {
const preUrl = document.getElementsByClassName("ChangeDomain").href;
const newUrl = preUrl.replace("domain1.com", "domain2.com");
console.info(newUrl);
return false;
};
</script>
Вы можете использовать jquery?