Javascript 如何在点击按钮时动态更新和显示JSON文件?

Javascript 如何在点击按钮时动态更新和显示JSON文件?,javascript,json,firefox,firefox-addon,Javascript,Json,Firefox,Firefox Addon,我正在创建一个插件,在其中,单击工具栏按钮,将显示一个包含复选框和保存按钮的面板。单击save按钮时,选中复选框的数据应保存/更新在JSON文件中,该文件应在单击save后显示。 此外,即使在重新启动浏览器后,JSON文件中动态更新的数据也应该可用。 JSON文件也应该保存在文件系统或本地存储中? 这可能吗。。plz帮助。。。请询问您是否需要更多信息。下面是我使用的addonScript:- var self = require('sdk/self'); var data = require("

我正在创建一个插件,在其中,单击工具栏按钮,将显示一个包含复选框和保存按钮的面板。单击save按钮时,选中复选框的数据应保存/更新在JSON文件中,该文件应在单击save后显示。 此外,即使在重新启动浏览器后,JSON文件中动态更新的数据也应该可用。 JSON文件也应该保存在文件系统或本地存储中? 这可能吗。。plz帮助。。。请询问您是否需要更多信息。下面是我使用的addonScript:-

var self = require('sdk/self');
var data = require("sdk/self").data;
var text_entry = require("sdk/panel").Panel({
  contentURL: data.url("CheckboxAddon.html"),
  //contentScriptFile: data.url("my-script.js")
});

// button creation
require("sdk/ui/button/action").ActionButton({
  id: "show-panel",
  label: "Show Panel",
  icon: {
    "16": "./star-icon.png",
  },
  onClick: handleClick
});

// Show the panel when the user clicks the button.
function handleClick(state) {
  text_entry.show();
}
text_entry.on("show", function() {
  text_entry.port.emit("show");
});
text_entry.port.on("text-entered", function (text) {
  console.log(text);
  text_entry.hide();
});

需要记住的一点是,JSON是javascript的子集,所以您只需编写一个javascript对象,它也是有效的JSON。对你来说,我怀疑这会是你不得不担心的事情。为了达到您想要的效果,您只需将任何数据放入
dataString=JSON.stringify(data)
dataString=JSON.stringify(data,null,“\t”)
,即可获得JSON格式的外观。相反,您可以使用
JSON.parse(dataString)
将字符串转换为javascript对象

一定要自己使用编写JSON对象的指南


有很好的例子,请查看方法部分中的JSON.stringify和JSON.parse。完全可能,您正在寻找firefox webstorage api。你在创建json文件方面也有困难吗?是的,我在创建json文件方面有困难。Btwn是我的方法,对吗?或者我需要在代码中做一些更改吗?到目前为止看起来不错,我会仔细看一看,今天晚些时候就json返回给你抱歉耽搁了。为了清楚起见,您希望显示JSON对象的文本表示?如果答案没有帮助,请告诉我,我可能误解了您的错误所在