javascript - Parse.com JS 可以作为 Chrome 扩展使用吗

标签 javascript jquery backbone.js google-chrome-extension parse-platform

我对 Parse 和 Chrome 扩展程序开发都很陌生,所以这可能是一个非常基本的问题:

我正在尝试开发一个 chrome 扩展,它可以读取数据并将数据写入 Parse.com。我当前的应用程序非常简单,虽然它在 Chrome(作为浏览器)中完美运行,但它不能作为 Chrome 扩展运行。对我可能会忽略的事情有什么想法吗?

具体细节:

我有一个指向 jquery.min.js、parse-1.2.18.min.js、myownscript.js 的 index.html

myownscript.js 看起来像这样:

$(function() {

    Parse.$ = jQuery;

    Parse.initialize("OMITTED",
                   "OMITTED");


    var Users = Parse.Object.extend("Users");
    var users = new Users();


    $("button").click(function(){
        users.save({name: $("#name").val()}, {
            success: function(object) {
                $(".success").show();
            },
            error: function(model, error) {
                $(".error").show();
            }
        });
        users.save({email: $("#email").val()}); 
    });   
});

最佳答案

您需要在解析初始化之前粘贴此代码:

function ChromeStorageController(){
    var store = {};//Object.create(null);
    store.async = 1;
    store.getItemAsync = function(path){
        var get = new Parse.Promise()
        chrome.storage.local.get(path,function(data){
                //careful here: get return a key,value pair but we only need the value
                get.resolve(data[path]);
        });
        return get;
    };
    store.setItemAsync = function(path,value){
        var set = new Parse.Promise()
        var item = Object.create(null);
        item[path] = value;
        chrome.storage.local.set(item, function(err){
            if(err){
                set.reject(err);
            }else{
                set.resolve(value);
            }
        });
        return set;
    };
    store.removeItemAsync = function(path){
        var remove = new Parse.Promise()
        chrome.storage.local.remove(path,function(err){
            if(err){
                remove.reject(err);
            }else{
                remove.resolve();
            }
        })
        return remove;
    };
    store.clear = function(){
        chrome.storage.local.clear();
    };
    return store;
}
Parse.CoreManager.setStorageController(ChromeStorageController())

解决方案发布在这里: https://github.com/ParsePlatform/Parse-SDK-JS/issues/72

感谢夸拉克

关于javascript - Parse.com JS 可以作为 Chrome 扩展使用吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24536922/

相关文章:

javascript - 允许使用一个或多个连续大写字母和数字的 PascalCased 的正则表达式

php - 访问来自 PHP/JQuery.ajax 的传入 PUT 数据以及如何处理它?

mysql - 数据库 ID 未在 Rails 和 Backbone.js 之间传递

javascript - Marionette CompositeView 调用从集合中添加的每个元素,这些元素属于 CompositeView...为什么?

backbone.js - 在不删除旧模型的情况下更新 Backbone.js 集合

javascript - 从 Windows 8 JS 应用程序获取仅 HTTP 的 cookie

javascript - 自动将名称 ="blah"标签添加到 <tr> 中的第 n 个 <td>

javascript - 空字符串传递给 jquery.unobtrusive-ajax.js 中的 getElementById() :16

javascript - Canvasjs 库、数据点

javascript - 将值直接放入输入文本框形式?