Проверить наличие ссылки в исходном коде страницы
Добрый день! Мне необходимо проверить наличие ссылки в исходном коде страницы при запуске скрипта. Пробовал вот так
var searchString = 'https://site.com/promo.php?banner=152539';
var source = document.documentElement.innerHTML;
if(source.search(searchString) !== -1){
//alert('Ссылка найдена');
}
else {
//alert('Ссылка не найдена');
}
Но не работает. В данном случае https://site.com/promo.php?banner=152539 искомая ссылка Подскажите как исправить? |
alerzo,
для начала поставить скрипт вниз страницы или запуск по https://learn.javascript.ru/onload-ondomcontentloaded далее либо заменить search на indexOf, либо заэкранировать служебные символы в searchString. |
|
Постоянно находит.
|
alerzo,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<script>
document.addEventListener("DOMContentLoaded", function() {
let searchString = 'https://site.com/promo.php?banner=152539';
let source = document.body.innerHTML;
const escapeRegExp = str => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
let reg = new RegExp(`['"]${escapeRegExp(searchString)}['"]`, 'mig');
if (source.search(reg) !== -1) {
alert('Ссылка найдена');
} else {
alert('Ссылка не найдена');
}
})
</script>
</head>
<body>
<a href="https://site.com/promo.php?banner=152539" title="test">test</a>
</body>
</html>
|
А как то по проще можно сделать? Без регулярный выражений и прочего.
|
Цитата:
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<script>
document.addEventListener("DOMContentLoaded", function() {
let link = 'https://site.com/promo.php?banner=152539';
let a = document.querySelector(`[href="${link}"]`);
if (a) {
alert('Ссылка найдена');
} else {
alert('Ссылка не найдена');
}
})
</script>
</head>
<body>
<a href="https://site.com/promo.php?banner=152539" title="test">test</a>
</body>
</html>
|
| Часовой пояс GMT +3, время: 15:08. |