【问题标题】:Does chrome extension can save the operation you set on the extension? [duplicate]chrome扩展是否可以保存你在扩展上设置的操作? [复制]
【发布时间】:2016-05-24 12:55:05
【问题描述】:

假设我设计了一个有四种模式的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];
    }
}

【问题讨论】:

    标签: javascript google-chrome-extension


    【解决方案1】:

    您应该使用可用于弹出窗口和内容脚本的持久存储。

    Chrome 以chrome.storage API 的形式提供。

    Google 关于Options pages 的文档提供了一个很好的例子。

    请注意chrome.storage 是异步的。不要发common mistakes

    【讨论】:

    • 谢谢你!我已经尝试了本地存储,它可以工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多