Я маскирую все URL в теле с помощью javascript, например
function mask() {
var a = document.getElementsByTagName('a');
for (var i = 0; i < a.length; i++) {
a[i].attributes.href.value = a[i].attributes.href.value.replace(/\./g, '"|"');
}
}
<body onLoad="mask()">
<a href="https://example.com">link</a>
</body>
Затем я хочу снять маску с URL, но только в том случае, если на странице есть несуществующее изображение (onError), например
function mask() {
var a = document.getElementsByTagName('a');
for (var i = 0; i < a.length; i++) {
a[i].attributes.href.value = a[i].attributes.href.value.replace(/\./g, '"|"');
}
}
function unmask() {
var a = document.getElementsByTagName('a');
for (var i = 0; i < a.length; i++) {
a[i].attributes.href.value = a[i].attributes.href.value.replace(/"\|"/g, '.');
}
}
<body onLoad="mask()">
<a href="https://example.com">link</a>
<br /><br />
<button onClick="unmask()">unmask</button>
<br /><br />
<img src="non-existing-image.gif" onError="unmask()"/>
</body>
Это не работает.Но если я использую для демаскирования что-то вроде кнопки и onClick
, демаскировка работает, как и ожидалось: onLoad
- URL-адреса маскируются, после клика URL-адреса не маскируются, как в примере выше.
Q :Как мне разоблачить URL с onError
?