#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.