Ersetzen Sie nur eine angegebene Schrift in Chrome

1491
Chris Krycho

Ich finde, dass Georgien steuerpflichtig ist, da es im letzten Jahr oder so auf der ganzen Welt auf zu vielen Websites allgegenwärtig geworden ist. Ich habe eigene Stylesheets in Chrome eingerichtet, um eine Reihe von Websites zu optimieren, die mir gefallen, aber es ist untragbar, ein benutzerdefiniertes Stylesheet für jede Site zu erstellen, und ich möchte wirklich nur dort einen Ersatz machen, wo sie Georgia verwendet haben. Ebenso ärgerlich ist der Inspektor, wenn ich eine Seite wechsle, um die Schriftarten erneut einzustellen. Weiß jemand, wie das geht? Leider scheint es kein Plugin zu geben, das über diese Funktion verfügt - entweder werden alle Schriftarten auf einer Seite ersetzt oder der Fokus ist zu eng.

Wenn es nichts gibt, kann ich mir überlegen, ein Bookmarklet zu schreiben, um genau dies zu tun, und es eventuell erweitern, um Plugins für die verschiedenen Browser zu erstellen, aber ich möchte die Arbeit, die ein anderer bereits gemacht hat, nicht duplizieren.

7

1 Antwort auf die Frage

5
RTOSkit

Erstellen Sie eine Chrome-Erweiterung, die die im Array aufgeführten Tags typesin jeder geöffneten Seite untersucht. Wenn ein Prozess gefunden hat, dass ein Knoten das entsprechende style-Attribut hat font-family, fontinwird dieser durch ersetzt fontout.

  • Erstellen Sie einen neuen Ordner mit dem Namen myplugin

  • Erstellen Sie in dem Ordner eine neue Datei mit dem Namen manifest.json, und fügen Sie den folgenden Code hinzu:


{ "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" ]  } 
  • Erstellen Sie in diesem Ordner eine neue Datei mit dem Namen script.js und fügen Sie den folgenden Code hinzu:


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; } } } }); })(); 
  • Gehen Sie zum Chrome-Menü »Einstellungen» Erweiterungen.

  • Nun klicken wir auf die Schaltfläche "Unpacked Extensions laden".

  • Zum Schluss markieren wir unseren Ordner und klicken auf die Schaltfläche "Öffnen".

Sie sehen, dass das System sehr einfach ist, und Sie können die Datei script.js mit Ihrem eigenen Steuercode anpassen . In Zukunft können Sie weitere Skripte, CSS, Konfigurationsseiten usw. hinzufügen.

Denken Sie daran, dass Sie das Plugin bei jeder Änderung in der Datei script.js mit
Ctrl+ neu laden sollten R.

Außerdem erhalten Sie eine detailliertere Anleitung zum Erstellen von Chrome-Erweiterungen .

Stört es Sie, die obigen Codeausschnitte zu aktualisieren? Ich habe es ausprobiert und es funktioniert nicht. Leider kenne ich kein Javascript. Ich kann meine Modifikationen vornehmen, sobald ich den Code für die Arbeit bekommen habe. prash vor 11 Jahren 0
Fast sicher ist Ihr Code-Snippet in einem anderen Container als den in der Variablen "types" aufgeführten eingeschlossen. Sie sollten Ihre Tags lokalisieren und im Array "types" einen Knotennamen hinzufügen. Wenn Sie mir einen Link mit Code-Snippet übergeben, könnte ich das Problem lokalisieren und den Code für Sie ändern. RTOSkit vor 11 Jahren 0
Ich habe den Code wörtlich verwendet, um damit zu beginnen. Ich denke, das Problem ist, dass Chrome einige API-Aufrufe geändert hat. Zum Beispiel scheint sendRequest nicht mehr gültig zu sein. Ich habe es auf [dieser Seite] (http://prashanth-n-rao.blogspot.de/2013/01/font-test.html) getestet, das ich speziell für das Testen des Plugins erstellt habe. prash vor 11 Jahren 0
Die APIs sind in Ordnung, ich habe den Link getestet, sollte einfach "document_start" durch "document_end" in der Datei manifest.json ersetzen RTOSkit vor 11 Jahren 0