Замена HTML своим

Поддержка
  • Пробовал и так, и эдак...нет пока в басе удобного "Замена элемента"...подскажите пожалуйста, как из например такого:

    <a href="" class="display-item-btn " data-toggle="modal" data-target="abc">Хаха</a>
    

    Сделать такое:

    <a href="" class="display-item-btn " data-toggle="modal" data-target="AAA">Хаха</a>
    
  • @forall 0_1519655344762_Снимок.PNG.png

  • Кто-нибудь знает, возможно ли заменить html страницы до ее выполнения?
    Например, мне нужно заменять id счетчика яндекс метрики на свой до выполнения загрузки. Иначе будет загружаться изначальный id, а второй на замену не будет проходить, так как сигнал о первом счетчике уже будет отправлен.

  • @agility said in Замена HTML своим:

    Кто-нибудь знает, возможно ли заменить html страницы до ее выполнения?
    Например, мне нужно заменять id счетчика яндекс метрики на свой до выполнения загрузки. Иначе будет загружаться изначальный id, а второй на замену не будет проходить, так как сигнал о первом счетчике уже будет отправлен.

    0_1563299506279_2e458c2a-d261-4f4e-bd77-25f923832adc-изображение.png

    Это действие задает скрипт, который должен выполняться на каждой странице и в каждом фрейме сразу после создания страницы. В отличие от действия "Яваскрипт", скрипт, определенный здесь, выполняется в самом начале загрузки страницы, что дает возможность изменять внутренние элементы браузера, такие как window.navigator. Действие должно быть выполнено до загрузки страницы.

    0_1563300321238_1002b0b0-a153-4bab-9e03-7d598a3d12c9-изображение.png

  • @fox Что-то не пашет.
    Я поставил такое выполнение, но innerText не поменялся (в меню "Кейсы"):

    document.getElementsByClassName("b-item2")[0].innerText = "test";
    

    0_1563363073274_test_свой html код.xml

    0_1563363062194_zhazhda.png

    Самое главное: а как можно поменять не html элементы, а javascript? Например, нужно поменять id во фрагменте ниже. Возможно регуляркой поменять html текст и применить к странице?

    <!-- Rating@Mail.ru counter -->
    <script type="text/javascript">
        var _tmr = window._tmr || (window._tmr = []);
        _tmr.push({id: "2775350", type: "pageView", start: (new Date()).getTime()});
        (function (d, w, id) {
            if (d.getElementById(id))
                return;
            var ts = d.createElement("script");
            ts.type = "text/javascript";
            ts.async = true;
            ts.id = id;
            ts.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//top-fwz1.mail.ru/js/code.js";
            var f = function () {
                var s = d.getElementsByTagName("script")[0];
                s.parentNode.insertBefore(ts, s);
            };
            if (w.opera == "[object Opera]") {
                d.addEventListener("DOMContentLoaded", f, false);
            } else {
                f();
            }
        })(document, window, "topmailru-code");
    </script>
    
  • @agility said in Замена HTML своим:

    @fox Что-то не пашет.
    Я поставил такое выполнение, но innerText не поменялся (в меню "Кейсы"):

    document.getElementsByClassName("b-item2")[0].innerText = "test";
    

    0_1563363073274_test_свой html код.xml

    Действие должно быть выполнено до загрузки страницы, откуда там document?

    Самое главное: а как можно поменять не html элементы, а javascript? Например, нужно поменять id во фрагменте ниже. Возможно регуляркой поменять html текст и применить к странице?

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

    Чтобы домен не спалили, поднимаешь свой сервер и в BAS через него загружаешь изменённую страницу.


    Нет паузы между получением браузером кодом страницы и её выполнением.

  • @fox said in Замена HTML своим:

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

    Код страницы допустим через get-запрос http клиентом могу получить, затем изменить html.
    Как дальше сохранить это, чтобы загрузить?
    Имеется ввиду сохранить как html файл и через веб-сервер localhost загрузить в басе? Если да, то как сохранить все картинки/css/js файлы и что бы корректно грузило?

    Чтобы домен не спалили, поднимаешь свой сервер и в BAS через него загружаешь изменённую страницу.

    Имеется ввиду в директиву винды hosts добавить правило типа этого?

    localhost mysite.ru
    

    Нет паузы между получением браузером кодом страницы и её выполнением.

    Нет паузы именно в bas'e или в работе самого движка cef? В ZP например такую фичу реализовали (вот), было бы здорово и в bas'e.

  • @fox, так что думаешь по моим вопросам выше? Я все равно так и не понял как у response сделать подмену html, а фишка крайне интересная кто поймет что с ней делать.

  • @agility said in Замена HTML своим:

    @fox, так что думаешь по моим вопросам выше? Я все равно так и не понял как у response сделать подмену html, а фишка крайне интересная кто поймет что с ней делать.

    Что то мне подсказывает, что мне придётся все эти костыли расписывать и настраивать самому :D. Проще подождите, скорее всего эта фишка появится в офф сборке. (скоро)

  • Есть такой html:

    
    <div class="grid-parent description-regular">
                            <div data-text="signinMsg" class="grid-child description-regular warning" dir="ltr">Неправильный идентификатор входа в сеть (адрес электронной почты) или пароль.</div>
                        </div>
    

    Нужно убрать строку "Неправильный идентификатор входа в сеть (адрес электронной почты) или пароль"

    Выполняю такой js на странице

    getElementsByClassName('grid-child description-regular warning').innerHTML = '';
    

    Но не работает
    Подскажите как правильно сделать

  • This post is deleted!
  • @vndes43ta said in Замена HTML своим:

    Есть такой html:

    
    <div class="grid-parent description-regular">
                            <div data-text="signinMsg" class="grid-child description-regular warning" dir="ltr">Неправильный идентификатор входа в сеть (адрес электронной почты) или пароль.</div>
                        </div>
    

    Нужно убрать строку "Неправильный идентификатор входа в сеть (адрес электронной почты) или пароль"

    Выполняю такой js на странице

    getElementsByClassName('grid-child description-regular warning').innerHTML = '';
    

    Но не работает
    Подскажите как правильно сделать

    Метод getElementsByClassName возвращает массив элементов. Используйте действие "Выполнить Javascript На Элементе" с кодом

    self.innerHTML = ""
    
  • @Fox Спасибо большое, это работает
    Не подскажите еще как сделать также с помощью js кода?

  • @vndes43ta said in Замена HTML своим:

    @Fox Спасибо большое, это работает
    Не подскажите еще как сделать также с помощью js кода?

    если элемент с этим классом один, то вот так:

    getElementsByClassName('grid-child description-regular warning')[0].innerHTML = ''
    
  • @Fox said in Замена HTML своим:

    @vndes43ta said in Замена HTML своим:

    @Fox Спасибо большое, это работает
    Не подскажите еще как сделать также с помощью js кода?

    если элемент с этим классом один, то вот так:

    getElementsByClassName('grid-child description-regular warning')[0].innerHTML = ''
    

    так тоже не работает почему то
    прикрепил весь html
    html.html

  • @vndes43ta said in Замена HTML своим:

    @Fox said in Замена HTML своим:

    @vndes43ta said in Замена HTML своим:

    @Fox Спасибо большое, это работает
    Не подскажите еще как сделать также с помощью js кода?

    если элемент с этим классом один, то вот так:

    getElementsByClassName('grid-child description-regular warning')[0].innerHTML = ''
    

    так тоже не работает почему то
    прикрепил весь html
    html.html

    document.querySelector('[data-text="signinMsg"]').innerHTML = ''
    
  • @Fox Работает, Спасибо большое

  • @Fox said in Замена HTML своим:

    Проще подождите, скорее всего эта фишка появится в офф сборке. (скоро)

    @Fox, как все же, не планируется добавить? А то полгода прошло :) Без подмены response сервера тяжело живется

  • @agility said in Замена HTML своим:

    @Fox said in Замена HTML своим:

    Проще подождите, скорее всего эта фишка появится в офф сборке. (скоро)

    @Fox, как все же, не планируется добавить? А то полгода прошло :) Без подмены response сервера тяжело живется

    В планах, но ни каких точных дат сказать не могу

  • @Fox можешь подсказать, как обратится с помощью getElementsByClassName, если элемент лежит внутри FRAME ?
    Селектор

    >XPATH> id("editor_ifr") >FRAME> >XPATH> id("tinymce")/div