Я написал расширение в Google Chrome, которое открывает вкладку для веб-страницы и вставляет код на эту страницу.Я также зарегистрировал обратный вызов в chrome.tabs.executeScript
, который будет вызываться после завершения кода.Затем этот обратный вызов открывает другую вкладку для другой страницы и выполняет другие действия, но я не хочу, чтобы это происходило до тех пор, пока страница первой вкладки не будет изменена.
Моя проблема заключается в том, что этот обратный вызов вызывается, когда это необходимовызывается, но не тогда, когда я хочу, чтобы он вызывался:
Мой внедренный код содержит setInterval
, который проверяет наличие определенных элементов DOM, прежде чем действовать на странице, и я не хочу обратного вызоваактивировать до тех пор, пока не будут задействованы эти элементы DOM.
Я не знаю, как внедрить код, взаимодействующий с кодом на моей странице расширения.
Есть ли способскажите код на моей странице расширения, что все в порядке, чтобы продолжать и вызывать обратный вызов в нужное время?
Вот код, объясняющий, что я делаю сейчас:
function doStuffWithTabs() {
chrome.tabs.create({url: 'some/url/here'}, function(tab) {
chrome.tabs.executeScript(tab.id, code: "var interval = setInterval(function(){if(jQuery(domElement).length){clearInterval(interval);workMagic();}},1);"}, function(){
goForthAndConquer();
});
}
}
workMagic()
представляет код, который манипулирует DOM открытой вкладки, а goForthAndConquer()
- это то, что я хочу, чтобы завершить манипулирование открытой вкладкой.
Прямо сейчасКак видите, введенный код просто регистрирует setInterval и немедленно вызывает обратный вызов.Опять же, я хочу, чтобы обратный вызов происходил после workMagic()
.