zoukankan      html  css  js  c++  java
  • 如何用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浏览器下需加上图标,否则需钩选 【插件栏显示扩展名称】才能看到自己的扩展。
  • 相关阅读:
    简单家庭记账本app开发进度四
    简单家庭记账本app开发进度三
    简单家庭记账本app开发进度二
    构建之法阅读笔记一
    寒假学习进度七
    简单家庭记账本app开发进度一
    【Java每日一题】20170328
    【Java每日一题】20170327
    【Java每日一题】20170324
    【Java每日一题】20170323
  • 原文地址:https://www.cnblogs.com/pu369/p/6381560.html
Copyright © 2011-2022 走看看