асинхронная проблема chrome.extension.sendRequest()

#javascript #google-chrome #asynchronous

#javascript #google-chrome #асинхронный

Вопрос:

Я создаю расширение Chrome, которое включает в себя изменение css сайта по умолчанию, скелет кода выглядит следующим образом

 chrome.extension.sendRequest({
    options: "foo"
}, function(response) {
    if(response=='on'){ 
 var d = document.documentElement;
  var css_chunk = document.createElement("style");
  css_chunk.type = "text/css";
  css_chunk.innerText = "img{ visibility:hidden !important; display:none !important; } ";
  d.insertBefore(css_chunk, null);          
    }
});
  

Я обнаружил, что это больше похоже на вызов AJAX, и поэтому css не всегда изменяется до загрузки исходного веб-сайта. Проблема в том, что иногда он «подмигивает» в течение очень короткого времени, прежде чем изображения исчезнут. Есть ли какая-либо возможность сделать этот вызов синхронным?

Я привязался к добавлению sleep (n) снаружи после вызова, и это работает. Однако эта функция необязательна для пользователя, т. Е. если функция отключена, страница также переходит в режим ожидания (n), что не так разумно.

Ответ №1:

Почему бы просто не использовать Stylebot? Либо это, либо напишите скрипт Greasemonkey и избавьте себя от необходимости писать полное расширение.

Комментарии:

1. На самом деле расширение массивное, и это одна из функций. В ближайшем будущем мы должны создать его для нашей собственной версии и даже для Firefox.