Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2020, 16:42   #1
llAlexll
Новичок
Джуниор
 
Регистрация: 03.03.2020
Сообщений: 3
По умолчанию Почему поиск на сайте заменяет ссылки на текст и как это иправить

Код:
<!DOCTYPE html>
<html lang="ru">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>n-kotiki</title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="styles.css">
        <link href="https://fonts.googleapis.com/css?family=Montserrat:500&display=swap" rel="stylesheet">
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
        <script src="../script.js"></script>
    </head>
    <script type="text/javascript">
    var lastResFind=""; // последний удачный результат
    var copy_page=""; // копия страницы в ихсодном виде
    function TrimStr(s) {
        s = s.replace( /^\s+/g, '');
        return s.replace( /\s+$/g, '');
    }
    function FindOnPage(inputId) {//ищет текст на странице, в параметр передается ID поля для ввода
        var obj = window.document.getElementById(inputId);
        var textToFind;

        if (obj) {
            textToFind = TrimStr(obj.value);//обрезаем пробелы
            
        } else {
            alert("Введенная фраза не найдена");
            return;
        }
        if (textToFind == "") {
            alert("Вы ничего не ввели");
            return;
        }

        

        if(copy_page.length>0)
            document.body.innerHTML=copy_page;
        else copy_page=document.body.innerHTML;


        document.body.innerHTML = document.body.innerHTML.replace(eval("/name="+lastResFind+"/gi")," ");//стираем предыдущие якори для скрола
        document.body.innerHTML = document.body.innerHTML.replace(eval("/"+textToFind+"/gi"),"<a name="+textToFind+" style='background:red'>"+textToFind+"</a>"); //Заменяем найденный текст ссылками с якорем;
        lastResFind=textToFind; // сохраняем фразу для поиска, чтобы в дальнейшем по ней стереть все ссылки
        window.location = '#'+textToFind;//перемещаем скрол к последнему найденному совпадению
    }
</script>
    <style>
<style>
<?php echo file_get_contents("../styles.css"); ?>

</style>

    <body>
    
<div class="wrapper">
        <?php require "../blocks/header.php" ?>


        <div class="d1">
  <form>
  <input type="text" id="text-to-find" placeholder="Введите термин... ">
  <input type="button" class="btn" onclick="javascript: FindOnPage('text-to-find'); return false;" value="Искать">
  </form>
</div>


<div class="spisok">
<a href="Площадь треугольника через две стороны и угол между ними.php">1) Площадь треугольника через две стороны и угол между ними.</a><br>



</div>



   </div>  
<footer class="footer">
        <?php require "../blocks/footer.php" ?>
</footer>       
    </body>
</html>



Поиск проходит нормально но к тексту после него перестают применяться стили и сам текст перестает быть ссылкой. В чем может быть проблема и как это можно исправить
llAlexll вне форума Ответить с цитированием
Старый 25.04.2020, 09:26   #2
[Timur]
Пользователь
 
Регистрация: 03.06.2019
Сообщений: 48
По умолчанию

Цитата:
Сообщение от llAlexll Посмотреть сообщение
lastResFind=textToFind; // сохраняем фразу для поиска, чтобы в дальнейшем по ней стереть все ссылки
что то мне кажется что все проблема в этом
[Timur] вне форума Ответить с цитированием
Старый 25.04.2020, 09:28   #3
[Timur]
Пользователь
 
Регистрация: 03.06.2019
Сообщений: 48
По умолчанию

а так у тебя порядковый номер ссылкой становится
[Timur] вне форума Ответить с цитированием
Старый 25.04.2020, 09:29   #4
[Timur]
Пользователь
 
Регистрация: 03.06.2019
Сообщений: 48
По умолчанию

кстати заметил что ссылкой перестаёт быть всё только после термина
[Timur] вне форума Ответить с цитированием
Старый 25.04.2020, 09:31   #5
[Timur]
Пользователь
 
Регистрация: 03.06.2019
Сообщений: 48
По умолчанию

хоть это и неправильно но можно попробовать через js создать get запрос перезагрузить страницу и тем же js прочесть его и прикинуть и выделить в нужном месте.
[Timur] вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не работают ссылки React на хостинге? Majard JavaScript, Ajax 0 15.11.2019 20:54
почему невозможна отследит текст введенный на место пароль на сайте? alman12 Общие вопросы Delphi 3 10.03.2017 22:52
Битые ссылки на сайте (и отображение картинок) maximus116 Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC) 0 04.11.2016 19:36
Иправить простенькую программу в Delphi в окне (Сегодня) to-ot Фриланс 5 29.12.2010 17:49