UPD. Решение исходной проблемы не нашел, но теперь пытаюсь перезагружать страницу при зависании. Какие есть еще варианты перезагрузить страницу, если даже действие "Яваскрипт" с кодом "location.reload()" зависает и отваливается по таймауту?(
Выполнять при каждой загрузке страницы в браузере
-
@DuckDuck у меня все же случай немного другой , у тебя как понял работа с dom тебе нужно дождатся загрузки dom.
А оно срабатывает после создания страницы.
Создание страницы не значит что оно имеет код в себе.
В идеале оно должно до появления DOM сработать -
@DrPrime said in Выполнять при каждой загрузке страницы в браузере:
который при событии выполнит очистку body
При каком событии? - моя задача сделать подмену всей страницы на ту что я хочу. То есть до исполнения/рендеринга страницы сделать полную ее замену.
Другие варианты со своим сервером, подменой днс и так далее я нашел. Но я рассчитывал на простой экшен, и пару лет назад когда игрался с яндексом, кажется этот метод работал. -
function ready() { var html = document.documentElement; // Получаем корневой элемент <html> html.innerHTML = 'Изменено'; // Изменяем содержимое корневого элемента console.log('ready'); } document.addEventListener("DOMContentLoaded", ready); -
@biohacker01 это в этом же экшене - при каждой загрузке ? ок - попробую - респект за дело, а не за холивар.
-
- Вероятно, функция в BAS Execute On Every Page Load In Browser реализует API https://pptr.dev/api/puppeteer.page.evaluateonnewdocument.
- А нужная отсутствующая функция в BAS https://pptr.dev/api/puppeteer.page.setrequestinterception, которая делает все, что нужно и даже больше. А нужно intercept requests - то есть перехват и манипуляция данными вкладки(page).
Я на этом форуме давал небольшой пример замены. Пример не раскрывает всю мощь этой функции, а лишь ее часть.
-
@sergerdn Блин, ну опять ты о своем о девичьем - о бензине - ну пойми ты - тут не форум про пипитер, тут форум баса - а бас это такая штука - которая в основном на кубиках и речь в данном топике о кубике, конкретном кубике в бас. Называется он выполнить при каждой загрузки - то есть до исполнения кода.
Или ты хочешь сказать что этот кубик можно улучшить ? -
@sergerdn Если есть решение как реализовать такое самому на любой библеотеке )

отблагодарю ,и быстро перепрыгну писать на playwright )А пока к сожалению я не нашел как запихать браузеры по контейнерам таким, чтоб они не открывались на всю подрят, и без headless
-
@DuckDuck said in Выполнять при каждой загрузке страницы в браузере:
@sergerdn Блин, ну опять ты о своем о девичьем - о бензине - ну пойми ты - тут не форум про пипитер, тут форум баса - а бас это такая штука - которая в основном на кубиках и речь в данном топике о кубике, конкретном кубике в бас. Называется он выполнить при каждой загрузки - то есть до исполнения кода.
Или ты хочешь сказать что этот кубик можно улучшить ?- Ты не первый, у кого встала задача перехвата и манипуляция данных. Я глубоко уверен, что данный функционал нужен в BAS из коробки, а его пока нет. Нужно просить его реализовать.
- У BAS есть библиотека, для управления встроенным браузером, которая реализует api puppeteer. https://github.com/CheshireCaat/puppeteer-with-fingerprints.
BAS это не только кубики(IDE), но и сам браузер. Всегда можно было прицепиться к запущенному браузеру BAS(https://chromedevtools.github.io/devtools-protocol/) и что-то там делать. И сейчас можно.
А с недавних пор есть готовые библиотеки(не только реализующие api puppeteer, я его привожу в пример, потому что достаточно известный) для манипуляции с браузером из BAS.
Из твоих постов в это ветке форума не понятно требования к реализации скрипта. Если скрипт пишется для себя(например), то я не вижу причин почему бы не рассмотреть вариант управлять браузером из BAS с помощью НЕ встроенной IDE, а помощью https://github.com/CheshireCaat/puppeteer-with-fingerprints.
Также есть способы совместить BAS(IDE) и api puppeteer в одном скрипте, но там костыль на костыле, не советую.
-
@biohacker01 said in Выполнять при каждой загрузке страницы в браузере:
А пока к сожалению я не нашел как запихать браузеры по контейнерам таким, чтоб они не открывались на всю подрят, и без headless
BAS сам запускает свои браузеры в headless(не видимом) режиме. А когда ты нажимаешь кнопку показать браузер - то он с помощью Windows API делает его видимым.
Я писал на этом форуме как-то, как можно управлять этим снаружи(скрывать и показывать браузер из BAS).
-
@sergerdn said in Выполнять при каждой загрузке страницы в браузере:
Из твоих постов в это ветке форума не понятно требования к реализации скрипта. Если скрипт пишется для себя(например), то я не вижу причин почему бы не рассмотреть вариант управлять браузером из BAS с помощью НЕ встроенной IDE, а помощью
А я не вижу причин - почему тебе не писать на го или ассемблере - там есть куча преимуществ...
Но ты почему то, по какой то тайной причине - тусуешься тут с нами.
Пиши хоть на раст - твой выбор. Но если ты пришел в тему обсуждения кубика баса из коробки - то фокус свой сосредоточь, на том, что речь о кубике из коробки ...
-
@DuckDuck said in Выполнять при каждой загрузке страницы в браузере:
А я не вижу причин - почему тебе не писать на го или ассемблере - там есть куча преимуществ...
Для каждой задачи своя реализация. На ассемблере не пишу, на Golang в последнее время пишу часто и много, так как задачи подходящие. Да и проще языка я еще не встречал, не совсем понимаю твое упоминание его в контексте задачи.
На Javascript многие пишут с этого форума, поэтому я его и упомянул. В том числе судя по постами и людям, которые отписали в этом топике.
@DuckDuck said in Выполнять при каждой загрузке страницы в браузере:
Но если ты пришел в тему обсуждения кубика баса из коробки - то фокус свой сосредоточь, на том что речь о кубике из коробки ...
Если лично ты ограничен реализацией(BAS IDE), то, может быть завтра человек, который столкнется с такой же задачей и он не будет ограничен рамками BAS IDE, прочитает инфу в этом топике и найдет готовое решение.
А, может быть, чем больше будет таких постов и комментариев в них - тем выше вероятность, что мы получим нужное в BAS из коробки.
-
@sergerdn если ты не понимаешь что такое контекст - то это лично твоя проблема, а твое резюме в теме про неправильно работающий кубик баса - никто не ждал ...
Ну сорян, я тебя блокировал, потом дал шанс, но ты не оставляешь мне выбора ...
