|
@@ -2,194 +2,190 @@
|
|
|
* FeHelper配置项
|
|
|
* @author zhaoxianlie
|
|
|
*/
|
|
|
-baidu.feOption = (function(){
|
|
|
- /**
|
|
|
- * 将这些配置项保存到background-page,这样才能对每个页面生效
|
|
|
- * @param {Object} items {key:value}
|
|
|
- */
|
|
|
- var _saveOptionItemByBgPage = function(items){
|
|
|
- for(var key in items){
|
|
|
- window.localStorage.setItem(key,items[key]);
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
- /**
|
|
|
- * 从background-page获取配置项
|
|
|
- * @param {Object} items ["",""]
|
|
|
- * @return {key:value}
|
|
|
- */
|
|
|
- var _getOptionItemByBgPage = function(items){
|
|
|
- var rst = {};
|
|
|
- for(var i = 0,len = items.length;i < len;i++){
|
|
|
- rst[items[i]] = window.localStorage.getItem(items[i]);
|
|
|
+baidu.feOption = (function () {
|
|
|
+
|
|
|
+ // 页面json格式化强制开启
|
|
|
+ var pageJsonMustFormat = true;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 将这些配置项保存到background-page,这样才能对每个页面生效
|
|
|
+ * @param {Object} items {key:value}
|
|
|
+ */
|
|
|
+ var _saveOptionItemByBgPage = function (items) {
|
|
|
+ for (var key in items) {
|
|
|
+ window.localStorage.setItem(key, items[key]);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从background-page获取配置项
|
|
|
+ * @param {Object} items ["",""]
|
|
|
+ * @return {key:value}
|
|
|
+ */
|
|
|
+ var _getOptionItemByBgPage = function (items) {
|
|
|
+ var rst = {};
|
|
|
+ for (var i = 0, len = items.length; i < len; i++) {
|
|
|
+ rst[items[i]] = window.localStorage.getItem(items[i]);
|
|
|
}
|
|
|
return rst;
|
|
|
};
|
|
|
-
|
|
|
- /**
|
|
|
- * 向background-page发送请求,提取配置项
|
|
|
- * @param {Object} items
|
|
|
- * @param {Function} 回调方法
|
|
|
- */
|
|
|
- var _goGetOptions = function(items,callback){
|
|
|
- chrome.extension.sendMessage({
|
|
|
- type : MSG_TYPE.GET_OPTIONS,
|
|
|
- items : items
|
|
|
- },callback);
|
|
|
- };
|
|
|
-
|
|
|
- /**
|
|
|
- * 向background-page发送请求,保存配置项
|
|
|
- * @param {Object} items
|
|
|
- * @param {Object} callback
|
|
|
- */
|
|
|
- var _goSetOptions = function(items){
|
|
|
- chrome.extension.sendMessage({
|
|
|
- type : MSG_TYPE.SET_OPTIONS,
|
|
|
- items : items
|
|
|
- });
|
|
|
- };
|
|
|
-
|
|
|
- /**
|
|
|
- * 由background-page触发
|
|
|
- * @param {Object} items
|
|
|
- * @param {Object} callback
|
|
|
- */
|
|
|
- var _doGetOptions = function(items,callback){
|
|
|
- if(callback && typeof callback == 'function'){
|
|
|
- callback.call(null,_getOptionItemByBgPage(items));
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
- /**
|
|
|
- * 由background-page触发
|
|
|
- * @param {Object} items
|
|
|
- * @param {Object} callback
|
|
|
- */
|
|
|
- var _doSetOptions = function(items){
|
|
|
- _saveOptionItemByBgPage(items);
|
|
|
- };
|
|
|
-
|
|
|
- /**
|
|
|
- * 获取某一项配置
|
|
|
- * @param {String} optName 配置参数名
|
|
|
- */
|
|
|
- var _getOptionItem = function(optName){
|
|
|
- return _getOptionItemByBgPage([optName])[optName];
|
|
|
- };
|
|
|
-
|
|
|
- /**
|
|
|
- * 保存启动项
|
|
|
- */
|
|
|
- var _save_opt_form_start = function(){
|
|
|
- var items = {};
|
|
|
- items['opt_item_contextMenus'] = $('#opt_item_contextMenus').attr('checked');
|
|
|
- items['opt_item_showfdpmenu'] = $('#opt_item_showfdpmenu').attr('checked');
|
|
|
- items['opt_item_autojson'] = $('#opt_item_autojson').attr('checked');
|
|
|
- items['opt_item_notification'] = $('#opt_item_notification').val();
|
|
|
- _goSetOptions(items);
|
|
|
- };
|
|
|
-
|
|
|
- /**
|
|
|
- * 显示启动项
|
|
|
- */
|
|
|
- var _show_opt_form_start = function(){
|
|
|
- var optItems = ['opt_item_contextMenus',"opt_item_showfdpmenu",
|
|
|
- "opt_item_autojson","opt_item_notification"];
|
|
|
- _goGetOptions(optItems,function(opts){
|
|
|
- $.each(optItems,function(i,item){
|
|
|
- if(i == 3) {
|
|
|
- $('#' + item).val(opts[item]);
|
|
|
- } else if(opts[item] === 'true') {
|
|
|
- $('#' + item).attr('checked','checked');
|
|
|
- }
|
|
|
- });
|
|
|
- })
|
|
|
- };
|
|
|
-
|
|
|
- /**
|
|
|
- * 保存相应的表单配置
|
|
|
- * @param {Object} form_id
|
|
|
- */
|
|
|
- var _save = function(form_id){
|
|
|
- switch(form_id){
|
|
|
- case 'opt_form_start':
|
|
|
- _save_opt_form_start();
|
|
|
- break;
|
|
|
- case '':
|
|
|
-
|
|
|
- break;
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
- /**
|
|
|
- * 关闭配置页面
|
|
|
- */
|
|
|
- var _closeTab = function(){
|
|
|
- chrome.tabs.query({active:true, currentWindow:true}, function (tabs) {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 向background-page发送请求,提取配置项
|
|
|
+ * @param {Object} items
|
|
|
+ * @param {Function} 回调方法
|
|
|
+ */
|
|
|
+ var _goGetOptions = function (items, callback) {
|
|
|
+ chrome.extension.sendMessage({
|
|
|
+ type: MSG_TYPE.GET_OPTIONS,
|
|
|
+ items: items
|
|
|
+ }, callback);
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 向background-page发送请求,保存配置项
|
|
|
+ * @param {Object} items
|
|
|
+ */
|
|
|
+ var _goSetOptions = function (items) {
|
|
|
+ chrome.extension.sendMessage({
|
|
|
+ type: MSG_TYPE.SET_OPTIONS,
|
|
|
+ items: items
|
|
|
+ });
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 由background-page触发
|
|
|
+ * @param {Object} items
|
|
|
+ * @param {Object} callback
|
|
|
+ */
|
|
|
+ var _doGetOptions = function (items, callback) {
|
|
|
+ if (callback && typeof callback == 'function') {
|
|
|
+ callback.call(null, _getOptionItemByBgPage(items));
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 由background-page触发
|
|
|
+ * @param {Object} items
|
|
|
+ */
|
|
|
+ var _doSetOptions = function (items) {
|
|
|
+ _saveOptionItemByBgPage(items);
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取某一项配置
|
|
|
+ * @param {String} optName 配置参数名
|
|
|
+ */
|
|
|
+ var _getOptionItem = function (optName) {
|
|
|
+ return _getOptionItemByBgPage([optName])[optName];
|
|
|
+ };
|
|
|
+
|
|
|
+ // 所有配置项
|
|
|
+ var optionItems = [
|
|
|
+ 'opt_item_contextMenus',
|
|
|
+ 'EN_DECODE',
|
|
|
+ 'CODE_BEAUTIFY',
|
|
|
+ 'JSON_FORMAT',
|
|
|
+ 'QR_CODE',
|
|
|
+ 'COLOR_PICKER',
|
|
|
+ 'REGEXP_TOOL',
|
|
|
+ 'TIME_STAMP',
|
|
|
+ 'IMAGE_BASE64',
|
|
|
+ 'FCP_HELPER_DETECT',
|
|
|
+ 'SHOW_PAGE_LOAD_TIME',
|
|
|
+ 'AJAX_DEBUGGER'
|
|
|
+ ];
|
|
|
+ if (!pageJsonMustFormat) {
|
|
|
+ optionItems.push('JSON_PAGE_FORMAT');
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存启动项
|
|
|
+ */
|
|
|
+ var _save_opt_form_start = function () {
|
|
|
+ var items = {};
|
|
|
+ $.each(optionItems, function (i, item) {
|
|
|
+ items[item] = $('#' + item).attr('checked');
|
|
|
+ });
|
|
|
+
|
|
|
+ _goSetOptions(items);
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 显示启动项
|
|
|
+ */
|
|
|
+ var _show_opt_form_start = function () {
|
|
|
+ _goGetOptions(optionItems, function (opts) {
|
|
|
+ $.each(optionItems, function (i, item) {
|
|
|
+ if (opts[item] === 'false') {
|
|
|
+ $('#' + item).removeAttr('checked');
|
|
|
+ }
|
|
|
+ });
|
|
|
+ })
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 关闭配置页面
|
|
|
+ */
|
|
|
+ var _closeTab = function () {
|
|
|
+ chrome.tabs.query({active: true, currentWindow: true}, function (tabs) {
|
|
|
var tab = tabs[0];
|
|
|
- chrome.tabs.remove(tab.id);
|
|
|
- });
|
|
|
- };
|
|
|
-
|
|
|
- /**
|
|
|
- * 事件绑定
|
|
|
- */
|
|
|
- var _bindEvent = function(){
|
|
|
- //左边的可选项
|
|
|
- $('#fe-opt-list-item>li').click(function(e){
|
|
|
- var $this = $(this).siblings().removeClass('selected').end().addClass('selected');
|
|
|
- $($this.attr('data-content')).siblings().removeClass('selected').addClass('fe-hide').end().removeClass('fe-hide').addClass('selected');
|
|
|
- });
|
|
|
-
|
|
|
- //为每个表单注册submit事件
|
|
|
- $('.right form').submit(function(e){
|
|
|
-
|
|
|
- //保存各个值
|
|
|
- _save($(this).attr('id'));
|
|
|
-
|
|
|
- //关闭当前tab
|
|
|
- _closeTab();
|
|
|
-
|
|
|
- e.preventDefault();
|
|
|
- e.stopPropagation();
|
|
|
- });
|
|
|
-
|
|
|
- //给保存按钮注册事件
|
|
|
- $('#btn_close').click(function(){
|
|
|
- //关闭当前tab
|
|
|
- _closeTab();
|
|
|
- });
|
|
|
-
|
|
|
- //给保存按钮注册事件
|
|
|
- $('#btn_save').click(function(){
|
|
|
- $('.right div.selected form').submit();
|
|
|
- });
|
|
|
- };
|
|
|
-
|
|
|
- /**
|
|
|
- * 初始化各个配置项
|
|
|
- */
|
|
|
- var _initOptions = function(){
|
|
|
- _show_opt_form_start();
|
|
|
- };
|
|
|
-
|
|
|
- /**
|
|
|
- * 初始化
|
|
|
- */
|
|
|
- var _init = function(){
|
|
|
- _bindEvent();
|
|
|
- _initOptions();
|
|
|
- };
|
|
|
-
|
|
|
- return {
|
|
|
- init : _init,
|
|
|
- doSetOptions : _doSetOptions,
|
|
|
- doGetOptions : _doGetOptions,
|
|
|
- getOptionItem : _getOptionItem,
|
|
|
- getOptions : _goGetOptions,
|
|
|
- setOptions : _goSetOptions
|
|
|
- };
|
|
|
+ chrome.tabs.remove(tab.id);
|
|
|
+ });
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 事件绑定
|
|
|
+ */
|
|
|
+ var _bindEvent = function () {
|
|
|
+
|
|
|
+ //给保存按钮注册事件
|
|
|
+ $('#btn_close').click(function () {
|
|
|
+ //关闭当前tab
|
|
|
+ _closeTab();
|
|
|
+ });
|
|
|
+
|
|
|
+ //给保存按钮注册事件
|
|
|
+ $('#btn_save').click(function () {
|
|
|
+
|
|
|
+ //保存各个值
|
|
|
+ _save_opt_form_start();
|
|
|
+
|
|
|
+ alert('恭喜,FeHelper配置修改成功!');
|
|
|
+
|
|
|
+ //关闭当前tab
|
|
|
+ _closeTab();
|
|
|
+
|
|
|
+ e.preventDefault();
|
|
|
+ e.stopPropagation();
|
|
|
+ });
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化各个配置项
|
|
|
+ */
|
|
|
+ var _initOptions = function () {
|
|
|
+ _show_opt_form_start();
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化
|
|
|
+ */
|
|
|
+ var _init = function () {
|
|
|
+ _bindEvent();
|
|
|
+ _initOptions();
|
|
|
+ };
|
|
|
+
|
|
|
+ return {
|
|
|
+ pageJsonMustFormat: pageJsonMustFormat,
|
|
|
+ optionItems: optionItems,
|
|
|
+ init: _init,
|
|
|
+ doSetOptions: _doSetOptions,
|
|
|
+ doGetOptions: _doGetOptions,
|
|
|
+ getOptionItem: _getOptionItem,
|
|
|
+ getOptions: _goGetOptions,
|
|
|
+ setOptions: _goSetOptions
|
|
|
+ };
|
|
|
})();
|
|
|
|
|
|
|