Проверить наличие ссылки в исходном коде страницы
Добрый день! Мне необходимо проверить наличие ссылки в исходном коде страницы при запуске скрипта. Пробовал вот так
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, время: 11:25. |