-1
假設我設計了一個有四種模式的Chrome擴展,然後我選擇一種模式來改變頁面的內容腳本和頁面改變。但是如果我進入另一個頁面,這種模式不起作用。我把我關於模式在彈出頁面'JavaScript中。 我希望當我進入其他頁面時,該模式也有效。如果我關閉了chrome軟件,然後再次打開它,擴展名可以是我之前選擇的模式?這可以解決嗎? 我的代碼在這裏。 popup.js擴展名是否可以保存您在擴展上設置的操作?
var colorMode = 0;
var temp = 0;
var flag = 1;
function transUp(){
if (flag){
flag = 0;
}
else{
colorMode = temp + 1;
if(colorMode == 6) colorMode = 0;
}
chrome.tabs.executeScript(null, {code:"colorChange('" + colorMode + "')"});
temp = colorMode;
colorMode++;
if(colorMode == 6) colorMode = 0;
}
document.addEventListener('DOMContentLoaded', function() {
document.getElementById("up").addEventListener('click',transUp);
});
popup.html
<!doctype html>
<html>
<head>
<title>Set Page Color Popup</title>
<style>
*{
margin: 0;
padding: :0;
}
.container{
overflow:hidden;
width:74px;
height:74px;
margin:10px;
}
#up{
background: url(up.png) center no-repeat;
background-size: 28px 28px;
margin: 3px 0 0 3px;
}
#up:hover{
box-shadow: 0 0 5px #000;
}
div div{
width: 32px;
height: 32px;
border: 1px #000 solid;
float: left;
cursor: pointer;
}
</style>
<script src="popup.js"></script>
</head>
<body>
<div class="container">
<div id="up"></div>
</div>
</body>
</html>
contentscript.js
var colorFont=['#fff','#feff00','#fff','#feff00','#fff','#fff'];
var colorBack=['#000','#000','#0000bf','#0000bf','#00ff00','#ff0000'];
var colorNum = 0;
function colorChange(color){
colorNum = color;
doTrans(colorNum);
}
function doTrans(colorKey){
var tags = document.body.getElementsByTagName('*');
for (var i = 0; i < tags.length; i++)
{
tags[i].style.color=colorFont[colorKey];
tags[i].style.backgroundColor=colorBack[colorKey];
}
}
謝謝你!我嘗試了本地存儲並且它可以工作 – yovino