Заменить текст новости на ссылку

Тема в разделе "JavaScript", создана пользователем seregha, 27 ноя 2014.

  1. seregha

    seregha

    Регистрация:
    8 апр 2013
    Сообщения:
    81
    Симпатии:
    17
    Приветствую, друзья!
    Помогите пожалуйста, гугл не находит то, что нужно.

    У меня есть текст новости. Например "сегодня была представлена новинка - шины Nokian WR D3". Мне нужно, чтобы в новости, все что содержит слово Nokian заменялось на ссылку <a href="/catalog/tires/Nokian>Nokian</a>

    Ну и соответственно, условия замены будут разные. Если по тексту - Michelin - значит ссылка на Michelin, если в тексте слово "шины" - значит ссылка на каталог с шинами и так далее.

    Кто чем поможет? Пожаалуйста.
     
  2. freud

    freud

    Регистрация:
    30 ноя 2014
    Сообщения:
    25
    Симпатии:
    2
    Код:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    
    <head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1251" />
      <title></title>
    <script language="JavaScript" type="text/javascript">
    function repl(a) {
        var b = {
            "111": "\u0437\u0430\u043c\u0435\u043d\u0430",
            "222": "\u043f\u0440\u043e\u0448\u043b\u0430",
            "333": "\u0443\u0441\u043f\u0435\u0448\u043d\u043e",
            "4": "!"
        };
        for (var c in b) {
            var d = RegExp(c, "gim");
            a = a.replace(d, b[c])
        }
        return a
    };
    
    window.onload = function () {
        all_elements = document.getElementsByTagName("*");
        i = 0;
        for (s = all_elements.length; i < s; i++) if (all_elements[i].tagName != "SCRIPT") {
            j = 0;
            for (s_ = all_elements[i].childNodes.length; j < s_; j++)
            if (all_elements[i].childNodes[j].nodeType == 3)
            all_elements[i].childNodes[j].data = repl(all_elements[i].childNodes[j].data)
        }
    };
    </script>
    </head>
    <body>
    <font color="#FF0000">111  222 333 444</font>
    </body>
    </html>
    
    --- Добавлено, 3 дек 2014 ---
    В данном примере 111 меняется на заданный текст 222 и тд можно и ссылкой поэкспероментировать
     
    seregha нравится это.
  3. seregha

    seregha

    Регистрация:
    8 апр 2013
    Сообщения:
    81
    Симпатии:
    17
    Спасибо большое, приду на работу попробую обязательно!