Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.01.2021, 16:23
Новичок на форуме
Отправить личное сообщение для dbs74 Посмотреть профиль Найти все сообщения от dbs74
 
Регистрация: 20.01.2021
Сообщений: 3

Баги при замена текста через Range
доброго времени всем
вот код для рассмотрения
содержимое тэга BODY
<table class="table" width="100%" cellspacing="0" cellpadding="0">
        <tr>
            <td id="visualTd" style="border-top:1px dotted #b2b2b2;">
                <span id="s1">
                    <b><font color="#e68f17">«TEST WITHOUT BR »</font></b>
                    <br><a href="http://test.ru"><font color="#99928a">+7 495</font> 550 03 60</a></span>
            </td>
        </tr>
    </table>
    <br /><br />
    <input type="button" onclick="ff('s1');" value="Test" />


содержимое тэга SCRIPT
var str  = '<font color="#99928a">+7 495</font> 550 03 60';
//var str = '<a href="http://test.ru">+7 495 550 03 60</a>';

function clearEmptyTag(str)
  {
      const reg = /<(font|a)[^>]*>\s*<\/\1>/gi;
      while (~str.search(reg))
       {
           str = str.replace(reg, '');
       }
       return str;
  }
function ff(s_id)
  {
      var r = window.getSelection().getRangeAt(0);

       var div = document.createElement("div");
       div.innerHTML = str;
       var frag = document.createDocumentFragment(), child;
       while ( (child = div.firstChild) )
         {
              frag.appendChild(child);
         }
        r.deleteContents();
        r.insertNode(frag);
        window.getSelection().removeAllRanges();
        
        // чистим паразитные пустые тэги
        var sObj = document.getElementById(s_id);
        sObj.innerHTML = clearEmptyTag(sObj.innerHTML);
  }


собственно я пытаюсь выделить блок со ссылкой http://joxi.ru/nAyMxvphwVW70A и далее заменить её кодом из строки в переменной str
собственно как можно догадаться я фактически пытаюсь вычистить в одном случае тэг ссылки, а в другом случае тэг шрифта

всё работает если я пытаюсь оставить в выделенном ссылку и убрать тэг font
в случае если я пытаюсь убрать из выделения ссылку и оставить раскрашивание, то кроме Mozilla не работает везде, а в Mozilla работает в том случае если за тэгом A перед закрывающим тэгом SPAN идёт какой-то любой тэг например BR

если собственно пытаться заменить просто текст, то всё также работает

заранее спасибо всем кто откликнется
Ответить с цитированием
  #2 (permalink)  
Старый 20.01.2021, 16:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

dbs74,
что должно получится?
Ответить с цитированием
  #3 (permalink)  
Старый 21.01.2021, 07:32
Новичок на форуме
Отправить личное сообщение для dbs74 Посмотреть профиль Найти все сообщения от dbs74
 
Регистрация: 20.01.2021
Сообщений: 3

должна произойти замена выделенной части, что же ещё
Вложения:
Тип файла: zip test_range.zip (1.1 Кб, 1 просмотров)
Ответить с цитированием
  #4 (permalink)  
Старый 21.01.2021, 09:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

dbs74,
не могу понять, чего вы хотите добиться.

пока для меня это выглядит так ...
function ff(s_id)
         {

            var sObj = document.getElementById(s_id);
            sObj.innerHTML = str;
         }
Ответить с цитированием
  #5 (permalink)  
Старый 21.01.2021, 12:57
Новичок на форуме
Отправить личное сообщение для dbs74 Посмотреть профиль Найти все сообщения от dbs74
 
Регистрация: 20.01.2021
Сообщений: 3

http://joxi.ru/52aZzgXUkBn84A

или вы весь код не видите или ещё что-то
html-ка приатаччена в zip-е

я хотел заменить выделенный кусок который визуально совпадает с номером телефона html-кодом из переменной str
Ответить с цитированием
  #6 (permalink)  
Старый 21.01.2021, 13:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

dbs74,
ок, видимо я не понимаю вашей проблемы.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JQuery, плавна замена текста при нажатии Georgie0409 jQuery 1 22.12.2019 11:45
Переносы строк в div contenteditable при выделении текста NapalmRain Элементы интерфейса 9 19.08.2016 13:14
Скрытие\показывание поля при вводе текста egor1708 Элементы интерфейса 2 30.11.2012 19:02
Как изменить цвет текста в таблице при наведении на нее? Amateur jQuery 3 01.09.2012 06:19
Замена текста в нутри страницы через JavaScript kqlek Общие вопросы Javascript 10 28.04.2009 23:33