123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296 |
- /**
- * FeHelper Settings Tools
- */
- module.exports = (() => {
- // 页面json格式化强制开启
- let MSG_TYPE = Tarp.require('../static/js/msg_type');
- // 默认值:JSON格式化支持的最大key数量
- let maxJsonKeysNumber = 10000;
- // 所有配置项
- let optionItems = [
- 'opt_item_contextMenus',
- 'JSON_PAGE_FORMAT',
- 'EN_DECODE',
- 'CODE_BEAUTIFY',
- 'CODE_COMPRESS',
- 'JSON_FORMAT',
- 'JSON_COMPARE',
- 'QR_CODE',
- 'COLOR_PICKER',
- 'REGEXP_TOOL',
- 'TIME_STAMP',
- 'IMAGE_BASE64',
- 'FCP_HELPER_DETECT',
- 'SHOW_PAGE_LOAD_TIME',
- 'AJAX_DEBUGGER',
- 'JS_CSS_PAGE_BEAUTIFY',
- 'HTML_TO_MARKDOWN',
- 'PAGE_CAPTURE',
- 'RANDOM_PASSWORD',
- 'FORBID_OPEN_IN_NEW_TAB',
- 'MAX_JSON_KEYS_NUMBER',
- 'AUTO_TEXT_DECODE',
- 'STICKY_NOTES',
- 'GRID_RULER',
- 'REMOVE_BG',
- 'MULTI_TOOLKIT',
- 'PAGE_MODIFIER'
- ];
- // 默认处理关闭状态的功能,除非用户手动打开
- let offDefaultList = [
- 'GRID_RULER',
- 'MENU_GRID_RULER',
- 'REMOVE_BG',
- 'MENU_REMOVE_BG'
- ];
- // 邮件菜单配置项
- let menuOptions = {
- MENU_PAGE_ENCODING: {
- icon: '↺',
- text: '网页编码设置'
- },
- MENU_QRCODE_CREATE: {
- icon: '▣',
- text: '二维码生成器',
- contexts: ['page', 'selection', 'editable', 'link', 'image']
- },
- MENU_QRCODE_DECODE: {
- icon: '◈',
- text: '二维码解码器',
- contexts: ['image']
- },
- MENU_PAGE_CAPTURE: {
- icon: '✂',
- text: '页面滚动截屏'
- },
- MENU_COLOR_PICKER: {
- icon: '☀',
- text: '页面取色工具',
- contexts: ['page', 'selection', 'editable']
- },
- MENU_IMAGE_BASE64: {
- icon: '⇄',
- text: '图片与base64',
- contexts: ['image']
- },
- MENU_STR_ENDECODE: {
- icon: '♨',
- text: '字符串编解码',
- contexts: ['page', 'selection', 'editable']
- },
- MENU_JSON_FORMAT: {
- icon: '★',
- text: 'JSON格式化',
- contexts: ['page', 'selection', 'editable']
- },
- MENU_JSON_COMPARE: {
- icon: '☃',
- text: 'JSON比对器'
- },
- MENU_CODE_FORMAT: {
- icon: '☂',
- text: '代码美化工具',
- contexts: ['page', 'selection', 'editable']
- },
- MENU_CODE_COMPRESS: {
- icon: '〓',
- text: '代码压缩工具'
- },
- MENU_AJAX_DEBUGGER: {
- icon: '▶',
- text: 'Ajax调试功能'
- },
- MENU_PAGE_OPTIMI: {
- icon: '√',
- text: '页面性能检测'
- },
- MENU_TIME_STAMP: {
- icon: '♖',
- text: '时间(戳)转换'
- },
- MENU_RANDOM_PASS: {
- icon: '☽',
- text: '随机密码生成'
- },
- MENU_JS_REGEXP: {
- icon: '✙',
- text: 'JS正则表达式'
- },
- MENU_MARKDOWN_TL: {
- icon: 'ⓜ',
- text: 'markown工具'
- },
- MENU_CODE_STANDARD: {
- icon: '☊',
- text: '编码规范检测'
- },
- MENU_STICKY_NOTE: {
- icon: '▤',
- text: '我的便签笔记'
- },
- MENU_GRID_RULER: {
- icon: '✚',
- text: '页面栅格标尺'
- },
- MENU_MULTI_TOOLKIT: {
- icon: '❖',
- text: '多维小工具集'
- },
- MENU_REMOVE_BG: {
- icon: '⚘',
- text: '人像背景移除'
- },
- MENU_PAGE_MODIFIER: {
- icon: '☃',
- text: '网页油猴工具'
- },
- MENU_DOWNLOAD_CRX: {
- icon:'↬',
- text: '下载/分享插件'
- }
- };
- /**
- * 获取全部配置项
- * @returns {string[]}
- * @private
- */
- let _getAllOpts = () => optionItems.concat(Object.keys(menuOptions));
- /**
- * 向background-page发送请求,提取配置项
- * @param {Function} callback 回调方法
- */
- let _getOptions = function (callback) {
- chrome.runtime.sendMessage({
- type: MSG_TYPE.GET_OPTIONS
- }, callback);
- };
- /**
- * 向background-page发送请求,保存配置项
- * @param {Object} items
- */
- let _setOptions = function (items) {
- chrome.runtime.sendMessage({
- type: MSG_TYPE.SET_OPTIONS,
- items: items
- });
- };
- /**
- * 由background-page触发
- * @param {Object} callback
- */
- let _getOptsFromBgPage = function (callback) {
- if (callback && typeof callback === 'function') {
- let rst = {};
- _getAllOpts().forEach((item) => {
- let opt = localStorage.getItem(item);
- if (item === 'MAX_JSON_KEYS_NUMBER') {
- rst[item] = opt || maxJsonKeysNumber;
- } else if (typeof(opt) === 'number') {
- rst[item] = opt;
- } else if (opt !== 'false') {
- if(opt || !offDefaultList.includes(item)) {
- rst[item] = 'true';
- }
- }
- });
- callback.call(null, rst);
- }
- };
- /**
- * 由background-page触发
- * @param {Object} items
- */
- let _setOptsFromBgPage = function (items) {
- _getAllOpts().forEach((opt) => {
- let found = items.some(it => {
- if (typeof(it) === 'string' && it === opt) {
- localStorage.setItem(opt, 'true');
- return true;
- }
- else if (typeof(it) === 'object' && it.hasOwnProperty(opt)) {
- localStorage.setItem(opt, it[opt]);
- return true;
- }
- return false;
- });
- if (!found) {
- localStorage.setItem(opt, 'false');
- }
- });
- };
- /**
- * 获取菜单配置项
- */
- let _getMenuOpts = function () {
- return menuOptions;
- };
- /**
- * 询问一下,菜单是否已保存
- * @param callback
- * @private
- */
- let _askMenuSavedOrNot = function (callback) {
- chrome.runtime.sendMessage({
- type: MSG_TYPE.MENU_SAVED
- }, callback);
- };
- /**
- * 判断menu是否已经设置过了,判断方法是:
- * 随便挑选一个Menu项,看它是否在localStorage中被存储过了
- * @private
- */
- let _didMenuSettingSaved = function (callback) {
- let flag = !!localStorage.getItem('MENU_PAGE_ENCODING');
- if (callback && typeof callback === 'function') {
- callback(flag);
- } else {
- return flag;
- }
- };
- /**
- * 默认的菜单列表
- * @returns {string[]}
- * @private
- */
- let _getDefaultContextMenus = function () {
- return [
- 'MENU_PAGE_ENCODING',
- 'MENU_QRCODE_CREATE',
- 'MENU_QRCODE_DECODE',
- 'MENU_PAGE_CAPTURE',
- 'MENU_COLOR_PICKER',
- 'MENU_IMAGE_BASE64',
- 'MENU_STR_ENDECODE',
- 'MENU_JSON_FORMAT',
- 'MENU_CODE_FORMAT'
- ];
- };
- return {
- getAllOpts: _getAllOpts,
- setOptsFromBgPage: _setOptsFromBgPage,
- getOptsFromBgPage: _getOptsFromBgPage,
- getOptions: _getOptions,
- setOptions: _setOptions,
- getMenuOpts: _getMenuOpts,
- didMenuSettingSaved: _didMenuSettingSaved,
- getDefaultContextMenus: _getDefaultContextMenus,
- askMenuSavedOrNot: _askMenuSavedOrNot
- };
- })();
|