Заменить только указанный шрифт в Chrome

1365
Chris Krycho

Я считаю, что Грузия облагает налогом, потому что за последний год или около того стало слишком много гнева на слишком многих сайтах. У меня есть настраиваемые таблицы стилей, настроенные в Chrome для настройки ряда сайтов, которые мне нравятся, но становится непозволительно создавать собственные таблицы стилей для каждого сайта, и я действительно хочу сделать замену только там, где они использовали Georgia. Столь же раздражающим является появление инспектора всякий раз, когда я изменяю страницу, чтобы снова установить шрифты. Кто-нибудь знает, как это сделать? Увы, похоже, что не существует такого плагина, который бы заменял все шрифты на странице или был слишком узким.

Если там ничего нет, я мог бы подумать о том, чтобы написать букмарклет для этого и, возможно, в конечном итоге расширить его на плагины для различных браузеров, но я бы не стал дублировать работу, которую уже сделал кто-то другой.

7

1 ответ на вопрос

5
RTOSkit

Создайте расширение Chrome, которое проверяет теги, перечисленные в массиве, typesна любую открытую страницу, если процесс найдет узел с атрибутом стиля, font-familyравным fontinему, будет заменен на fontout.

  • Создайте новую папку с именем, например, myplugin

  • В папке создайте новый файл с именем manifest.json и добавьте этот код внутри:


{ "name": "Font change", "version": "1.0", "manifest_version": 2, "description": "Font change.",  "content_scripts": [ { "all_frames": true, "exclude_globs": [ ], "include_globs": [ "*" ],  "js": [ "script.js" ], "matches": [ "http://*/", "https://*/", "https://*/*", "http://*/*" ], "run_at": "document_end" } ], "permissions": [ "tabs", "http://*/", "https://*/", "https://*/*", "http://*/*", "contextMenus" ]  } 
  • В этой папке создайте новый файл с именем script.js и добавьте этот код внутри:


var types = new Array("textarea","input","div","h1","h2","h3","span","p"); var fontin ="Verdana"; var fontout = "\'Courier New\'";  (function(){  chrome.extension.sendRequest({ set:"font" },function(response){ for(var i=0;i<types.length;i++){  var node = document.getElementsByTagName(types[i]); for(var y=0;y<node.length;y++){  if(node[y].style.fontFamily==fontin){ node[y].style.fontFamily = fontout; } } } }); })(); 
  • Зайдите в меню Chrome »Настройки» Расширения.

  • Теперь нажимаем на кнопку «Загрузить распакованные расширения».

  • Наконец мы помечаем нашу папку и нажимаем кнопку открытия.

Вы можете видеть, что система очень проста, и вы можете настроить файл script.js с вашим собственным управляющим кодом. В будущем вы можете добавить другие скрипты, CSS, страницы конфигурации и т. Д.

Помните, что каждый раз, когда вы вносите изменения в файл script.js, вы должны перезагрузить плагин с
Ctrl+ R.

Также вы можете получить более подробное руководство о том, как создавать расширения Chrome .

Вы не возражаете обновить вышеприведенные фрагменты кода? Я попробовал, и это не работает. К сожалению, я не знаю JavaScript. Я могу внести свои изменения, как только получу рабочий код. prash 11 лет назад 0
Почти наверняка ваш фрагмент кода обернут в контейнер, отличный от перечисленных в переменной `types`, вы должны найти свои теги и добавить имя узла в массив` types`. Если вы передадите мне ссылку с фрагментом кода, я смогу найти проблему и изменить код для вас. RTOSkit 11 лет назад 0
Нет. Для начала я использовал дословно код. Я думаю, проблема в том, что chrome изменил некоторые вызовы API. Например, sendRequest, похоже, больше не действителен. Я протестировал его на [этой странице] (http://prashanth-n-rao.blogspot.de/2013/01/font-test.html), которую я создал специально для тестирования плагина. prash 11 лет назад 0
API-интерфейсы в порядке, я проверил ссылку, просто следует заменить «document_start» на «document_end» в файле manifest.json RTOSkit 11 лет назад 0

Похожие вопросы