Можно ли сделать ссылку, которая ищет текст

12 3
Y
На сайте с 25.10.2007
Offline
198
3111

Добрый день, есть необходимость сделать ссылку, которая ведёт на один определённый документ html огромный, который постоянно меняется.

Пользователь должен нажав на эту ссылку перейти в тот раздел сайта, который содержит определённое слово.

Понимаю, что замудрённо, но может как то можно реализовать?

Присущ
На сайте с 06.01.2011
Offline
929
#1

# вам в помощь, яндексуй

Прототипы и юзабилити, чтоб продавал и в топ попал Анализ сложившихся бизнес моделей и поиска точек роста Директ — от 2500 р, включая бюджет на клики / Аудит РК до и после запуска — от 5000 р
Z0
На сайте с 03.09.2009
Offline
809
#2

Якорями, как сказали выше. Или так, через Jquery:

$('div:contains("див содержит текст")')

Ну и далее скролим к этому элементу

S
На сайте с 30.09.2016
Offline
469
#3
yaltabes:
перейти в тот раздел сайта

А этот раздел находится на этой же странице сайта, или на другой? Или, может быть, вообще на другом сайте?

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
Y
На сайте с 25.10.2007
Offline
198
#4
Sitealert:
А этот раздел находится на этой же странице сайта, или на другой? Или, может быть, вообще на другом сайте?

На этом же сайте но на другой странице.

---------- Добавлено 02.02.2017 в 08:24 ----------

ziliboba0213:
Якорями, как сказали выше. Или так, через Jquery:

Большое спасибо, но в коде я очень слаб если на затруднит, дайте полную ссылку, для того, что бы вот на этой странице, срезу перейти к тексту "архангельск".

https://mil-ru.ru/images/doc/31012017.html

Якоря расставлять каждый раз не вариант, так как документ меняется очень часто.

Z0
На сайте с 03.09.2009
Offline
809
#5
yaltabes:

Якоря расставлять каждый раз не вариант, так как документ меняется очень часто.

$('a:contains("архангельск")')  

Если на другую страницу, то там можно только через якоря, или использовать jquery и hash. Давно не делал ничего на JS, вам лучше попросить программистов 🍿

Jaf4
На сайте с 03.08.2009
Offline
804
#6
yaltabes:

Якоря расставлять каждый раз не вариант, так как документ меняется очень часто.

Ну меняется он часто. Якоря-то причем? Проставил и все. У тебя сейчас они там есть и работают.

Не хочешь якорями, тогда варианты еще сложнее.

Например, порви (распарси) большой документ на страницы с помощью PHP, каждую строку таблицы в отдельный документ. И ссылайся уже на тот документ, который тебе нужен.

При правке большого документа на остальных страницах тоже значения изменятся.

yaltabes:
в коде я очень слаб

тогда либо стать в коде сильней, либо обратиться к кому-нибудь, четко описав задачу.

New! NVMe VPS от SmartApe.ru (https://goo.gl/eoYYkS)
S
На сайте с 13.10.2014
Offline
171
#7

гуглите по словосочетанию "якорь HTML"

D
На сайте с 31.01.2017
Offline
15
#8
yaltabes:
На этом же сайте но на другой странице.
Большое спасибо, но в коде я очень слаб если на затруднит, дайте полную ссылку, для того, что бы вот на этой странице, срезу перейти к тексту "архангельск".
https://mil-ru.ru/images/doc/31012017.html

Якоря расставлять каждый раз не вариант, так как документ меняется очень часто.
  • Подключаете на этой странице jQuery
  • Подключаете этот код
  • $(() => {
    
    if(window.location.hash) {
    search(window.location.hash.substring(1), document.body);
    }
    });


    function search(text, tag) {
    //console.log(tag.children)
    if(tag.children.length) {
    var next = true;
    [].every.call(tag.children, (children) => {
    //console.log(children);
    next = search(text, children);
    return next;
    });
    return next;
    } else if (~tag.innerText.indexOf(text)) {
    //console.log(tag);
    $(document).scrollTop($(tag).offset().top);

    return false;
    }

    return true;
    }
  • Ссылки формируете таким образом: https://mil-ru.ru/images/doc/31012017.html#Архангельск

Данный код находит первое вхождение строки и скролит окно до него. Единственное, если текст будет разбит тегами, то поиск не сработает. Это самый простой вариант.

Пример как работает можете посмотреть тут https://jsfiddle.net/asa6hzqy/ Только там из-за ифрема не работают хеши, искомый текст я вставил прямо в скрипт.

Z0
На сайте с 03.09.2009
Offline
809
#9
Jaf4:
Ну меняется он часто. Якоря-то причем? Проставил и все. У тебя сейчас они там есть и работают.
Не хочешь якорями, тогда варианты еще сложнее.
Например, порви (распарси) большой документ на страницы с помощью PHP, каждую строку таблицы в отдельный документ. И ссылайся уже на тот документ, который тебе нужен.
При правке большого документа на остальных страницах тоже значения изменятся.


тогда либо стать в коде сильней, либо обратиться к кому-нибудь, четко описав задачу.

Вроде как можно еще хитропопей:

выловить нужные слова, через php загнать их в span с id, и по готовности скролить к нему через JS :)

Вариантов куча, мне кажется. Если бы у меня стояла такая задача, покрутил бы, а так - лень :)

Jaf4
На сайте с 03.08.2009
Offline
804
#10
ziliboba0213:
Вроде как можно еще хитропопей:
выловить нужные слова, через php загнать их в span с id, и по готовности скролить к нему через JS

да вы, батенька, знаете толк... сказать, что я удивлен = ничего не сказать :)

ТС, да, через яваскрипт таки разово настроить и все .. а так на хостинге еще и php нужно..

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий