Я конвертирую существующий сайт из jQuery и т. Д. В сайт React.У меня также есть расширение Chrome, которое работает специально для этого сайта, поэтому у меня есть доступ к обеим сторонам этого.У меня проблема в том, что расширение Chrome не будет обновлять DOM на сайте React, и это важно для его функционирования.
Исходный сайт правильно работал с этим в расширении Chrome:
var tab = yield browser.createTab('localhost:3000/dashboard', this.window);
console.log('Delay 3000');
yield this.delay(3000, 3000);
var showProRunning = yield browser.runCodeOnTab(tab, `$('#isProRunning').val('yes')`);
Сайт React не работает с этим:
var tab = yield browser.createTab('localhost:3000/dashboard', this.window);
console.log('Delay 3000');
yield this.delay(3000, 3000);
var showProRunning = yield browser.runCodeOnTab(tab, `document.getElementById('isProRunning').value='yes'`);
Трехсекундная задержка является временным взломом, чтобы убедиться, что весь DOM загружен до того, как расширение попытается что-либо сделать.с этим.Я ожидаю, что расширение Chrome сможет получить доступ к скрытому полю ввода 'isProRunning' и обновить его значение, но этого не происходит.Любая помощь будет принята с благодарностью!
- РЕДАКТИРОВАТЬ - Основываясь на комментарии wOxxOm, я понял, что это работает так:
yield browser.runCodeOnTab(tab, `document.getElementById('isProRunning').focus()`);
yield browser.runCodeOnTab(tab, `document.execCommand('insertText', false, '1')`);
Вместо того, чтобы использовать скрытый ввод, мне пришлось использовать тексти скрыть его в div с высотой и шириной 0. Попытка обновить скрытый ввод не сработала.