不知道有没有科学依据,自己感觉黑底白字对视力好些,于是动手加个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浏览器下需加上图标,否则需钩选 【插件栏显示扩展名称】才能看到自己的扩展。

如何用chrome扩展将网页变成黑底白字,用以保护视力的更多相关文章

  1. 如何用Chrome浏览器下载网页音乐视频

    打开网页,先让要下载的视频播放,右键单击选择审查元素(F12),选择上方的Network选项,按F5刷新,这个时候我们可以看到框架中Size下的不少文件数据数字正在变大,按size降序排列.点击表格的 ...

  2. 15个网页设计必备的Google Chrome 扩展

    2011年第一篇,翻译自freelancefolder的一篇文章.以下为译文内容: 最近,我将Google Chrome作为了我的主力浏览器,同时,将其作为我设计和开发网页的工具,尽管我还时常会去Fi ...

  3. Chrome扩展程序——TabCopy:一键复制网页标题和网址

    Chrome扩展程序——TabCopy:一键复制网页标题和网址 - Erik_ly的博客 - CSDN博客 https://blog.csdn.net/u012318074/article/detai ...

  4. 如何用原生js开发一个Chrome扩展程序

    原文地址:How to Build a Simple Chrome Extension in Vanilla JavaScript 开发一个Chrome扩展程序非常简单,只需要使用原生的js就可以完成 ...

  5. 推荐一个可以把网页背景色调成护眼色的Chrome扩展应用

    程序员一天有10几个小时要面对着电脑,老是这种白晃晃的屏幕,谁的眼睛受得了? 我在网上逛了一圈,找到一个比较实用的Chrome扩展应用,可以一键实现将Chrome打开网页的背景色修改成护眼的豆沙绿,这 ...

  6. 清除页面广告?身为前端,自己做一款简易的chrome扩展吧

    大家肯定有这样的经历,浏览网页的时候,左右两端广告,诸如“屠龙宝刀,点击就送”,以及最近火的不行的林子聪37传奇霸业什么“霸业面具,霸业吊坠”的魔性广告总是充斥我们的眼球. 当然有现成的扩展程序或者插 ...

  7. Web 开发人员必备的12款 Chrome 扩展程序

    之前已经分享过一些帮助 Web 开发人员和设计师的 Chrome 扩展,这次我们继续展示一组很有用的 Chrome 应用程序.这些免费的 Chrome 应用程序可以简化您的工作流程,为了加快您的工作流 ...

  8. 【转发】NPAPI学习(Firefox和Chrome扩展开发 )

    NPAPI学习(Firefox和Chrome扩展开发 ) 2011-11-08 14:41:02 by [6yang], 1172 visits, 收藏 | 返回 Firefox和Chrome扩展开发 ...

  9. Chrome扩展开发之二——Chrome扩展中脚本的运行机制和通信方式

    目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...

随机推荐

  1. 《从Paxos到ZooKeeper 分布式一致性原理与实践》读书笔记

    一.分布式架构 1.分布式特点 分布性 对等性.分布式系统中的所有计算机节点都是对等的 并发性.多个节点并发的操作一些共享的资源 缺乏全局时钟.节点之间通过消息传递进行通信和协调,因为缺乏全局时钟,很 ...

  2. 移动端Html5控制布局

    <meta name="viewport" content="width=device-width, height=device-height, inital-sc ...

  3. canvas-a11htmlANDcanvas.html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 二进制安装 kubernetes 1.12(一) - 安装 ETCD

    软件环境 软件 版本 操作系统 CentOS 7.4 Docker 18-ce Kubernetes 1.12 服务器角色 角色 IP 组件 k8s-master 192.168.0.205 kube ...

  5. JavaScript 变量及类型

    在JavaScript中,所有的number都是以64位浮点型数据来存储的.所有的编程语言,包括js,对浮点型数据的精度都很难确定. var a = 0.1 + 0.2; console.log(a ...

  6. @RequestParam加与不加的区别

    最简单的两种写法,加或不加@RequestParam注解 @RequestMapping("/list") public String test(int userId) { ret ...

  7. JS apply的巧妙用法以及扩展到Object.defineProperty的使用

    Math.max 实现得到数组中最大的一项 var array = [1,2,3,4,5]; var max = Math.max.apply(null, array); console.log(ma ...

  8. 【读书笔记】iOS-使用GCD改善性能

    一,队列简介. 有些与并行处理相关的术语令人迷惑.线程是一个常用的术语,在iOS应用中,线程是标准的POSIX线程.从技术上说,线程不过是一组指令,可在进程中独立地处理:在同一个进程中,可以有多个线程 ...

  9. iOS ---------NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)

    遇到此问题的解决办法: 使用<NSURLSessionDelegate>中的didReceiveChallenge方法,方法中的代码如下: - (void)URLSession:(NSUR ...

  10. Python __exit__,__enter__函数with语句的组合应用

    __exit__,__enter__函数with语句的组合应用   by:授客 QQ:1033553122 简介 设计对象类时,我们可以为对象类新增两个方法,一个是__enter(self)__,一个 ...