onload
- можешь. Только не onload
addEventListener('load', ...)
.content_scripts
указывается когда его запускать в параметре run_at
. onclick
, а addEventListener('click', ...)
. Вообще забудь об on<event>
когда лезешь на чужие страницы. Такой обработчик может быть только один, в то время как addEventListener
сколько угодно.split
, на который жалуется ошибка, так что где-то ты привираешь. function interceptBefore(func, callback) {
return function (...args) {
const newArgs = callback(args);
return func.apply(this, Array.isArray(newArgs) ? newArgs : args);
}
}
console.log = interceptBefore(
console.log,
(args) => console.warn('console.log call: %o', args)
);
console.log(1, 2);
<div className="App">
<Preloader>
<h1>
Hello CodeSandbox
</h1>
</Preloader>
<Preloader>
<h2>
Start editing to see some magic happen!
</h2>
</Preloader>
</div>
useLayoutEffect(() => {
const parent = ref.current.parentNode; // ref - корневой элемент
parent.classList.add(preloader.wrapper);
return () => {
parent.classList.remove(preloader.wrapper);
}
}, []);
@input
как раз должен работать:await page.on('response', response => {
page.on('response', async response => {
.page.on
не возвращает Promise
, он подписывается на события.page.on
- это уже будет отдельный асинхронный (псевдо)поток, который пойдёт параллельно основному.Promise
, условно так: const json = await new Promise(resolve => page.on('response', function onResponse(response) {
if (response.url() == "https://capuk.org/ajax_search/capmoneycourses") {
page.off('response', onResponse);
resolve(response.json());
}
}));
console.log('XHR response received');
console.log(json);
!important
;body
перед классом; :not(.hack)
(можно n раз, чем больше - тем селектор круче);