Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Проверить наличие ссылки в исходном коде страницы (https://javascript.ru/forum/css-html/84723-proverit-nalichie-ssylki-v-iskhodnom-kode-stranicy.html)

alerzo 29.11.2022 08:34

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

рони 29.11.2022 08:59

alerzo,
для начала поставить скрипт вниз страницы или запуск по https://learn.javascript.ru/onload-ondomcontentloaded
далее либо заменить search на indexOf, либо заэкранировать служебные символы в searchString.

alerzo 29.11.2022 10:50

код странички

alerzo 29.11.2022 10:51

Постоянно находит.

рони 29.11.2022 11:36

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>

alerzo 29.11.2022 13:24

А как то по проще можно сделать? Без регулярный выражений и прочего.

рони 29.11.2022 13:28

Цитата:

Сообщение от alerzo
Без регулярный выражений и прочего.

<!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, время: 05:09.