Задать вопрос
@Roman-roman

Как скрыть отображение адреса всех ссылок в браузере одним скриптом?

Приветствую! Ребята, подскажите, как одним скриптом можно скрыть отображение ссылки в углу браузера? Внешних ссылок на сайте сотни, и каждую отдельно скрывать не вариант, весь инет перерыл, не нашел единого решения....
  • Вопрос задан
  • 614 просмотров
Подписаться 2 Простой 8 комментариев
Решения вопроса 1
dollar
@dollar
Делай добро и бросай его в воду.
document.querySelectorAll('a').forEach(a=>{
	if(!a.href || !(a.href.indexOf('http')===0)) return;
	let href = a.href;
	a.removeAttribute('href');
	a.addEventListener('click',e=>{
		location.href = href;
	});
});

Но этот скрипт испортит некоторые хитрые кнопки. Так что надо доделывать либо под конкретный сайт, либо думать, как определять кнопки в универсальном варианте скрипта.
Немного улучшенный вариант:

Но нет предела совершенству. Улучшать можно бесконечно.
document.querySelectorAll('a').forEach(a=>{
	//a.style.backgroundColor = 'red'; //красным проигнорированные
	if (a.href && a.href.indexOf('javascript:') === 0) {
		//a.style.backgroundColor = '#ff0'; //желтым скриптованные ссылки
		let eval_str = a.href.substr(11);
		a.addEventListener('click',e=>{
			eval(eval_str);
		});
		a.removeAttribute('href');
		return;
	}
	if(!a.href || !(a.href.indexOf('http')===0)) return;
	let c = a.className;
	if (c.indexOf('button') > -1 || c.indexOf('btn') > -1 || c.indexOf('like') > -1 || c.indexOf('reply') > -1) return;
	if (a.querySelector('svg') || a.querySelector('img')) return;
	if (a.style.borderRadius) return;
	//a.style.backgroundColor = '#0f0'; //зеленым очищенные ссылки
	let href = a.href;
	a.removeAttribute('href');
	a.addEventListener('click',e=>{
		location.href = href;
	});
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы