Я пытаюсь написать пользовательский скрипт для Chrome, который отключает конкретный файл CSS для конкретного сайта.
Часть, касающаяся переключения CSS-файла на другой, работает нормально, проблема в том, что я не могу этого сделать до того, как страница будет отображена.Это приводит к очень уродливому мерцанию сайта, когда сначала отображается оригинальный макет, а затем быстро заменяется новым макетом, который я вставил.
Я использовал @run_at document_start
, чтобы мой пользовательский скрипт запускался достраница отображается, но это не работает должным образом.Из того, что я вижу из официальной документации Chrome , это должно поддерживаться.
Для справки, вот мой полный сценарий:
// ==UserScript==
// @name name
// @namespace namespace
// @version 0.1a
// @description description
// @include http://example.com/*
// @run_at document_start
// ==/UserScript==
var sheets = document.getElementsByTagName("link");
for (var i=0; i<sheets.length; ++i) {
if (sheets[i].href.indexOf('all.css') != -1) {
sheets[i].href = 'http://replacement.com/all.css';
}
}
Я исследовал немного дальшеи мне удалось установить точку останова в моем скрипте (по какой-то причине скрипт изначально не появлялся в Инструментах разработчика).При остановке в точке останова в начале моего сценария сайт уже полностью загружен оригинальной темой.Так что, похоже, директива @run_at document_start
просто не работает, и мой скрипт выполняется после загрузки страницы.Хотя я не могу понять, почему это так.