如何用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瀏覽器下需加上圖標,否則需鉤選 【插件欄顯示擴展名稱】才能看到自己的擴展。

?

轉載于:https://www.cnblogs.com/pu369/p/6381560.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/393927.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/393927.shtml
英文地址,請注明出處:http://en.pswp.cn/news/393927.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

從零學習機器學習_機器學習:如何從零變英雄

從零學習機器學習以“為什么&#xff1f;”開頭 并以“我準備好了&#xff01;”結尾 (Start with “Why?” and end with “I’m ready!”) If your understanding of A.I. and Machine Learning is a big question mark, then this is the blog post for you. Here, I gradu…

sqoop動態分區導入mysql,使用sqoop import從mysql往hive含分區表中導入數據的一些注意事項...

先看下面這條語句&#xff0c;它實現的功能是將特定日期的數據從mysql表中直接導入hive$ sqoop import \--connect jdbc:mysql://192.168.xx.xx:3306/db_name?useSSLfalse \--username xxx --password xxxxxx \--query "select d.id, d.callsign, d.sobt from t_flight_b…

leetcode面試題 08.04. 冪集(遞歸)

冪集。編寫一種方法&#xff0c;返回某集合的所有子集。集合中不包含重復的元素。 說明&#xff1a;解集不能包含重復的子集。 示例: 輸入&#xff1a; nums [1,2,3] 輸出&#xff1a; [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 代碼 class Solution {List&l…

gatsby_我如何使用Gatsby和Netlify建立博客

gatsbyby Pav Sidhu通過帕夫西杜(Pav Sidhu) 我如何使用Gatsby和Netlify建立博客 (How I Built My Blog Using Gatsby and Netlify) 您能說出更具標志性的二人??組合嗎&#xff1f; &#xff1f; (Can you name a more iconic duo? ?) Years ago, whenever I built a stat…

交叉熵與相對熵

熵的本質是香農信息量()的期望。 現有關于樣本集的2個概率分布p和q&#xff0c;其中p為真實分布&#xff0c;q非真實分布。 按照真實分布p來衡量識別一個樣本的所需要的編碼長度的期望(即平均編碼長度)為&#xff1a;H(p)。 如果使用錯誤分布q來表示來自真實分布p的平均編碼長度…

menustrip

在對應菜單上點擊鼠標右鍵&#xff0c;插入&#xff0c;SEPARATOR 就可以了&#xff0c;然后可以選中拖動位置。轉載于:https://www.cnblogs.com/Echo529/p/6382302.html

直接排序

題目&#xff1a;使用直接排序法將下列數組&#xff08;從小到大排序&#xff09;思路&#xff1a;第一次&#xff1a;使用索引值為0的元素與其他位置的元素挨個比較一次&#xff0c;如果發現比0號索引值的元素小的&#xff0c;那么交換位置&#xff0c;第一輪下來最小值被放在…

leetcode78. 子集(回溯)

給定一組不含重復元素的整數數組 nums&#xff0c;返回該數組所有可能的子集&#xff08;冪集&#xff09;。 說明&#xff1a;解集不能包含重復的子集。 示例: 輸入: nums [1,2,3] 輸出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 代碼 class Solution {pub…

php字符串綜合作業,0418php字符串的操作

實例字符串函數(一):長度計算$siteName php中文網;//獲取內部字符編碼集$encoding mb_internal_encoding();//1、strlen($str):獲取字節表示的字符串長度//utf8模式下&#xff0c;一個中文字符用三個字節表示echo strlen($siteName),; //12//2、mb_strlen($str,$encoding)&…

如何處理JavaScript中的事件處理(示例和全部)

In this blog, I will try to make clear the fundamentals of the event handling mechanism in JavaScript, without the help of any external library like Jquery/React/Vue.在此博客中&#xff0c;我將嘗試在沒有任何外部庫(例如Jquery / React / Vue)的幫助下闡明JavaSc…

js 圖片預覽

//顯示選擇的圖片縮略圖function showImage(inputId,imageConfirmId,imageConfi){var imagedocument.getElementById(inputId).value.toLowerCase();if(!image){return;}var fileExtendimage.substr(image.lastIndexOf(".", image.length)1);if(!(fileExtend"jp…

什么是copyonwrite容器

2019獨角獸企業重金招聘Python工程師標準>>> CopyOnWrite容器即寫時復制的容器。通俗的理解是當往一個容器添加元素的時候&#xff0c;不直接往當前容器添加&#xff0c;而是先將當前容器進行Copy&#xff0c;復制出一個新的容器&#xff0c;然后新的容器里添加元素…

hystrix 源碼 線程池隔離_Hystrix源碼學習--線程池隔離

分析你的系統你所認識的分布式系統&#xff0c;哪些是可以進行垂直拆分的&#xff1f;拆分之后系統之間的依賴如何梳理&#xff1f;系統異構之后的穩定性調用如何保證&#xff1f;這些都是可能在分布式場景中面臨的問題。說個比較常見的問題&#xff0c;大家都知道秒殺系統&…

P2341 [HAOI2006]受歡迎的牛 強連通

題目背景 本題測試數據已修復。 題目描述 每頭奶牛都夢想成為牛棚里的明星。被所有奶牛喜歡的奶牛就是一頭明星奶牛。所有奶 牛都是自戀狂&#xff0c;每頭奶牛總是喜歡自己的。奶牛之間的“喜歡”是可以傳遞的——如果A喜 歡B&#xff0c;B喜歡C&#xff0c;那么A也喜歡C。牛欄…

oracle em agent,ORACLE?11G?EM?配置命令及問題處理

11g裝好以后&#xff0c;一直未用EM,昨天晚上和今天晚上終于抽時間把EM啟動起來了&#xff0c;還遇到一點小問題&#xff0c;1.EM配置的一些命令創建一個EM資料庫emca -repos create重建一個EM資料庫emca -reposrecreate--------這個很主要&#xff0c;一般第一次不成功創建的時…

leetcode89. 格雷編碼

格雷編碼是一個二進制數字系統&#xff0c;在該系統中&#xff0c;兩個連續的數值僅有一個位數的差異。 給定一個代表編碼總位數的非負整數 n&#xff0c;打印其格雷編碼序列。即使有多個不同答案&#xff0c;你也只需要返回其中一種。 格雷編碼序列必須以 0 開頭。 示例 1:…

注重代碼效率_如何提升質量:注重態度

注重代碼效率by Harshdeep S Jawanda通過Harshdeep S Jawanda 如何提升質量&#xff1a;注重態度 (How to skyrocket quality: focus on attitude) When it comes to discussing quality and how we can improve, the most common things that come to peoples minds are test…

spark mllib推薦算法使用

2019獨角獸企業重金招聘Python工程師標準>>> 一、pom.xml <!-- 機器學習包 --><dependency><groupId>org.apache.spark</groupId><artifactId>spark-mllib_2.10</artifactId><version>${spark.version}</version>&…

Android仿QQ復制昵稱效果2

本文同步自http://javaexception.com/archives/77 背景: 在上一篇文章中&#xff0c;給出了一種復制QQ效果的方案&#xff0c;今天就來講講換一種方式實現。主要依賴的是一個開源項目https://github.com/shangmingchao/PopupList。 解決辦法: PopupList.java的代碼封裝的比較完…

R語言的自定義函數—字符組合

前兩天寫了幾個函數&#xff0c;對里面收獲到的一些東西做一些記錄。 函數str_comb&#xff0c;用于輸入一個字符串或數值向量&#xff0c;返回由向量中元素組成的不重復的長度小于向量長度的所有組合&#xff0c;結果用矩陣形式輸出。 函數使用結果如下&#xff1a; 思路很簡單…