2016-05-24 112 views
-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]; 
    } 
} 

回答

0

您應該使用可用到這兩個彈出式和內容腳本永久存儲。

Chrome提供的形式爲chrome.storage API

谷歌關於Options pages的文檔提供了一個很好的例子。

請注意,chrome.storage是異步的。不要製造common mistakes

+0

謝謝你!我嘗試了本地存儲並且它可以工作 – yovino

相關問題