如何用chrome扩展将网页变成黑底白字,用以保护视力

时间:2022-11-07 18:20:01

不知道有没有科学依据,自己感觉黑底白字对视力好些,于是动手加个chrome扩展:

第一步:建个文件夹,名称比如叫changeColor;

第二步:在changeColor文件夹中建三个文件:manifest.json  、  background.js   和 content_script.js

第三步:编辑三个文件

manifest.json放入以下代码

{
"name": "Page color",
"description": "Make the current page color",
"version": "2.0",
"permissions": [
"activeTab"
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_title": "change color"
},
"manifest_version": 2
}

background.js的代码

// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // Called when the user clicks on the browser action.
chrome.browserAction.onClicked.addListener(function(tab) {
// No tabs or host permissions needed!
console.log('Turning ' + tab.url + ' red!');
chrome.tabs.executeScript(null, {file: "content_script.js"});
});

content_script.js代码

document.body.style.backgroundColor="black";
document.body.style.color="white";
var myP = document.getElementsByTagName("p");
for (var i=0;i<myP.length;i++)
{
myP[i].style.backgroundColor = "black";
myP[i].style.color = "white"; };
var myDiv = document.getElementsByTagName("div");
for (var i=0;i<myDiv.length;i++)
{
myDiv[i].style.backgroundColor = "black";
myDiv[i].style.color = "white"; };
var myBlockquote = document.getElementsByTagName("blockquote");
for (var i=0;i<myBlockquote.length;i++)
{
myBlockquote[i].style.background = "grey";
myBlockquote[i].style.color = "white"; };
var myA = document.getElementsByTagName("a");
for (var i=0;i<myA.length;i++)
{
myA[i].style.color = "white"; };
var myul = document.getElementsByTagName("ul");
for (var i=0;i<myul.length;i++)
{
myul[i].style.background = "black";
myul[i].style.color = "white"; };
var myli = document.getElementsByTagName("li");
for (var i=0;i<myli.length;i++)
{
myli[i].style.background = "black";
myli[i].style.color = "white"; };
var myspan = document.getElementsByTagName("span");
for (var i=0;i<myspan.length;i++)
{
myspan[i].style.background = "black";
myspan[i].style.color = "white"; };
var mypre = document.getElementsByTagName("pre");
for (var i=0;i<mypre.length;i++)
{
mypre[i].style.background = "black";
mypre[i].style.color = "white"; };
var mysection = document.getElementsByTagName("section");
for (var i=0;i<mysection.length;i++)
{
mysection[i].style.background = "black";
mysection[i].style.color = "white"; };
var mytable = document.getElementsByTagName("table");
for (var i=0;i<mytable.length;i++)
{
mytable[i].style.background = "black";
mytable[i].style.color = "white"; };

第四步 打开chrome浏览器,在地址栏输入chrome://extensions    或者 点最右边三个点-更多工具-扩展程序

第五步  钩选 开发者模式 ,从资源管理器将changeColor文件夹拖放到扩展程序页面上 或者 点加载已解压的扩展程序也可。

第六步 在新标签中打开某个网页,比如:baidu.com  ,再点地址栏右边扩展图标,页面文字变成黑底白字了。

补充:在打开某个页面时,发现还有白块,于是在白块上点鼠标右键,再点 检查,在页面代码中发现是 th 和footer 的背景,于是在content_script.js的最后加以上以代码

var myth = document.getElementsByTagName("th");
for (var i=0;i<myth.length;i++)
{
myth[i].style.background = "black";
myth[i].style.color = "white"; };
var footer = document.getElementsByTagName("footer");
for (var i=0;i<footer.length;i++)
{
footer[i].style.background = "black";
footer[i].style.color = "white"; };

然后在chrome扩展页面按下 ctrl-R  ,之后在有白块的页面上点击地址栏右侧的扩展图标。嗯,找到了上学时看黑板的感觉了。

后记,使用时发现还会有个别块背景不是黑色,

干脆将content_script.js中全部内容用以下代码替换

var all = document.getElementsByTagName("*");
for (var i=0;i<all.length;i++)
{
all[i].style.background = "black";
all[i].style.color = "white"; };
不过由于选择元素太多 ,感觉脚本执行速度慢了。另外在360浏览器下需加上图标,否则需钩选 【插件栏显示扩展名称】才能看到自己的扩展。