pu369com

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

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

 

posted on 2017-02-09 12:17  pu369com  阅读(887)  评论(0编辑  收藏  举报

导航