如何将值(存储在PHP服务器变量上)存储到交叉器在浏览器中安装时所做的扩展

时间:2012-11-09 11:03:29

标签: server-variables crossrider

当用户将扩展程序安装到浏览器时,有没有办法将值(存储在服务器变量上)存储到在crossrider上创建的扩展名?当用户启动浏览器插件的安装时,就会出现这种情况!

说出这样的情况:我成了浏览器扩展程序,并在我的网站上显示下载和安装扩展程序的链接。现在我需要存储从php获取的值并将其存储在扩展中的某个地方,除非卸载扩展本身,否则用户无法删除。

1 个答案:

答案 0 :(得分:2)

只要可以使用URL获取服务器变量(例如,创建一个只返回服务器变量值的php页面),就可以在扩展中执行此操作。

第1步


根据您是否需要处理返回的数据,您可以使用以下方法之一来获取和保存值。

注意:我建议您在background.js文件中执行此步骤,以便仅在首次运行扩展程序时执行一次。

方法1 [响应不需要处理]:使用appAPI.db.setFromRemote()方法获取并保存值。

var serverVar = appAPI.db.get('serverVar');
if (!serverVar) {
    appAPI.db.setFromRemote(
        "<URL>", // URL to fetch the server variable
        'serverVar' // Name of key to use for saving the value
    );
}

方法2 [响应需要处理]:使用appAPI.request.get()方法获取值,处理响应,然后使用appAPI.db .set()方法[有关更多信息,请参阅http://docs.crossrider.com/#!/api/appAPI.db-method-set]以保存值:

var serverVar = appAPI.db.get('serverVar');
if (!serverVar) {
    appAPI.request.get(
        "<URL>", // URL to fetch the server variable
        function(response, headers) { // onSuccess callback function
            // process the reponse as required
            // e.g. trim leading and trailing spaces
            var myProcessedData = response.replace(/^\s\s*/, '').replace(/\s\s*$/, '');

            // save data to local db
            appAPI.db.set('serverVar', myProcessedData);
    });
}

第2步


将服务器变量保存到本地数据库后,可以使用appAPI.db.get()方法从扩展后台作用域或页面作用域中检索它[有关详细信息,请参阅http://docs.crossrider .com /#!/ api / appAPI.db-method-get],如下:

var serverVar = appAPI.db.get("serverVar");