-1
クロムエクステンションに4つのモードがあるとすると、ページのコンテンツスクリプトとページを変更するモードを1つ選択します。しかし、別のページを入力すると、このモードは機能しません。ポップアップページのjavascriptで 私が望むのは、他のページを入力してもモードが動作することです。また、クロムソフトウェアを閉じてからもう一度開くと、拡張子は前に選択したモードになりますか?これはうまくいくのでしょうか? 私のコードはこちらです。 popup.js拡張機能で設定した操作をChrome拡張機能で保存できますか?
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];
}
}
ありがとうございます。私はlocalstorageを試して、それが動作します – yovino