简易功能面板

简单设置属性就能实现一个好看好用的功能面板,非常适合编写Tampermonkey和Greasy Fork 脚本时使用!包含功能选择和设置存储功能。

Ce script ne doit pas être installé directement. C'est une librairie destinée à être incluse dans d'autres scripts avec la méta-directive // @require https://update.greasyfork.org/scripts/472149/1228499/%E7%AE%80%E6%98%93%E5%8A%9F%E8%83%BD%E9%9D%A2%E6%9D%BF.js

// ==UserScript==
// @name         简易功能面板
// @icon	 http://jquery.com/favicon.ico
// @author       Chuck
// @match      http://*
// @connect      *
// @version      0.1.1
// @description  简单设置属性就能实现一个好看好用的功能面板,非常适合编写Tampermonkey和Greasy Fork 脚本时使用!包含功能选择和设置存储功能。
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_deleteValue
// @grant        GM_listValues
// @grant        GM_xmlhttpRequest
// @grant        GM_getResourceText
// @grant        GM_registerMenuCommand
// @grant        GM_unregisterMenuCommand
// ==/UserScript==
// ==================

let ChuckPanelDate = {};
const ChuckPanel = {};
ChuckPanel.waitToLoad = function(element__id_str,callback) {
	const timer = setInterval(function() {
		if($(element__id_str).length!=0){
			callback();
			clearInterval(timer);
		}
	}, 500);
}
 
 
ChuckPanel.windowToggle = function(){
	ChuckPanel.load(ChuckPanelDate.options);
	$("#ChuckPanel").fadeToggle();
}
ChuckPanel.closeWindow = function(){
	$("#ChuckPanel").fadeOut();
}
 
ChuckPanel.init = function(options){
	let cssStr = "#ChuckPanel{"+
	"position: fixed;"+
"	display: none;"+
"	width: "+options.width+
"	;height:"+options.height+
"	;border: 2px solid #777;"+
"	border-radius: 20px;"+
"	font-family:\"Microsoft YaHei\";"+
"	overflow: hidden;"+
"background: #fff;"+
    "z-index: 999;"+
	options.otherPannelCSS+
"			}"+
"#Cbgimg{"+
"	position: absolute;"+
"	left: 10px;"+
"	bottom: 40px;"+
"	width: 130px;"+
"	height: 130px;"+
"	opacity: 0.1;"+
'background-image:url("data:image/png;base64,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0p8zAAA9amlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS41LWMwMTQgNzkuMTUxNDgxLCAyMDEzLzAzLzEzLTEyOjA5OjE1ICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE1LTA0LTA5VDIwOjQ2OjI1KzA4OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNS0xMC0zMVQyMzoyMzowNiswODowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTUtMTAtMzFUMjM6MjM6MDYrMDg6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjM4ODcxOTg1LTM0ZjAtZGQ0NS04MzIxLTY0NjkxZmU1YzdkOTwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo1MzNjYjg5Yi1lNDBiLTQwNGYtODU4Yy0wMzg4NTY0YTRmNTA8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo1MzNjYjg5Yi1lNDBiLTQwNGYtODU4Yy0wMzg4NTY0YTRmNTA8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jcmVhdGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NTMzY2I4OWItZTQwYi00MDRmLTg1OGMtMDM4ODU2NGE0ZjUwPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE1LTA0LTA5VDIwOjQ2OjI1KzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDozNGYzM2Y2NS00NGUwLTYwNGUtYTdkNS1kZTZkYzI5NjZlM2M8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTUtMDQtMDlUMjA6NDk6MTcrMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjM4ODcxOTg1LTM0ZjAtZGQ0NS04MzIxLTY0NjkxZmU1YzdkOTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNS0xMC0zMVQyMzoyMzowNiswODowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8cGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPgogICAgICAgICAgICA8cmRmOkJhZz4KICAgICAgICAgICAgICAgPHJkZjpsaT54bXAuZGlkOjE1NjQ1REZFMTVFOEUwMTFCRjgyQTU4MTBCNEIwQ0E2PC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGk+eG1wLmRpZDo3M0M4QTE5N0ZBRTNFMDExQURGOUNEM0U4MDc4MEZCQTwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPnhtcC5kaWQ6OUM3Mjc2MUU5REQ3RTAxMTlGNTBFQjc5OThCOUYwNjA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaT54bXAuZGlkOkZEMTBGRUYyOUVEN0UwMTE5RjUwRUI3OTk4QjlGMDYwPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOkJhZz4KICAgICAgICAgPC9waG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjEwMDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PufZKpQAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAMKxJREFUeNrkfXd4VFX6/+eW6b0lk2TSQwohFAkgWOgoKEgXECysCCiKjZUqyrogAhZsq6yuS28qICKo9CK9pUPapEySyUza9Hbv74/MzIIQIA31+3uf5z7wZGbOPed8zjlvfw8xesQINId8Ph+USiXUGg1qamoQHh4Or9cLhmEgEAjg8XggVygAlgWXy4XT5YLZZIJEKkVISAgqDAYolUpYrFa4XS6EhoaCIAjYbDbU19eDw+FAKpXCZDIhOjZWHabVxkml0k7RMTEpFEWFc3m8UJfTGVFdXR0hl8vB4XAAACwAwt+/+vp6CIXCBqlUmutyucxcHs9QWVFxpbys7GJRUVGJw+EoJwHYbDaIpVK4XS6YzWaEhIRAJpejrKwM2tBQOF0u8Hg81JjN8Pl8YFkWHA4HBEEAAGpra8EXCCARi2EymSCTy2GsqgJJkrDZbKg2GkEQRPD7d0I0/kAiCAKMzwe7wwFTdTWEIpG0S9eu3bp27TqUy+enu1yu+5wOB99kMuHE8eOw2WwwmUyoKC+H3W5HTU0NHA4HfD4fAICk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");'+
 
"	background-size: cover;"+
"}"+
"#CpanelSwitch{"+
"	position: absolute;"+
"    top: 1px;"+
"    right: 11px;"+
"    font-weight: bold;"+
"    text-shadow: #777 0 1px 0px;"+
"    cursor: pointer;"+
"    color: #777;"+
"}"+
"#CpanelSwitch:hover{"+
"	text-shadow: #ddd 0 1px 0px;"+
"	color: #ddd;"+
"}"+
"#Cconctrol{"+
"	position: absolute;"+
"	width: 100%;"+
"	bottom: 10px;"+
"}"+
"#Ctitle{"+
"	height: 30px;"+
"    background-color: rgb("+options.themecolor+");"+
"    text-align: center;"+
"    line-height: 28px;"+
"    color: #fff;"+
"}"+
"#Cmain{"+
"	"+
"}"+
".Cgroup{"+
"	position: relative;"+
"	width: 100%;"+
"	border-bottom: 1px solid #ccc;"+
"	padding: 5px 20px;"+
"-webkit-touch-callout: none;"+
"    -webkit-user-select: none;"+
"    -khtml-user-select: none;"+
"    -moz-user-select: none;"+
"    -ms-user-select: none;"+
"    user-select: none;"+
"    cursor: default;"+
"}"+
".Cgroup input[type=checkbox],.Cgroup span{"+
"	display: inline-block;"+
"    vertical-align: middle;"+
"    color: #777;"+
"}"+
".Cgroup span{"+
"	margin-left: 10px;"+
"}"+
".Cgroup label{"+
"	background: #777;"+
"    border-radius: 50%;"+
"    cursor: pointer;"+
"    display: block;"+
"    height: 16px;"+
"    left: -3px;"+
"    position: absolute;"+
"    top: -3px;"+
"    transition: all .5s ease;"+
"    width: 16px;"+
"}"+
".Cgroup input[type=checkbox]:checked + label {"+
"      	background: rgb("+options.themecolor+");"+
"    	left: 7px;"+
"    }"+
"#CsaveBtn:hover,#CcancelBtn:hover{	 background-color: rgba("+options.themecolor+", 1);}"+
"#CsaveBtn,#CcancelBtn{"+
"	 width: 80px;"+
"	 background-color: rgba("+options.themecolor+", 0.5);"+
"	 height: 30px;"+
"	 padding: 0px 10px;"+
"	 border-radius: 20px;"+
"	 line-height: 30px;"+
"	 color: #fff;"+
"	 float: left;"+
"	 margin-left: 10px;"+
"	 cursor: pointer;"+
"}"+
"#CcancelBtn{"+
"	width: 34px;"+
"}"+
".Chide{display:none !important;}"+
".CswitchBtn"+
"{    "+
"	display: inline-block;"+
"	background: #ccc;"+
"    border-radius: 5px;"+
"    height: 10px;"+
"    position: relative;"+
"    width: 20px;"+
"}"+options.otherCSS;
$("<style class='ChuckPanelCSS'>"+cssStr+"</style>").appendTo("head");
 
let htmlFunctionListStr = "" ;
options.functionNameArray.forEach(function(e,i){
	htmlFunctionListStr+=
"			<div class=\"Cgroup\">"+
"			<div class=\"CswitchBtn\" >"+
"				<input type=\"checkbox\" name=\"\" id=\""+options.functionIdArrary[i]+"\" class=\"Chide\">"+
"				<label for=\""+options.functionIdArrary[i]+"\"></label>"+
"			</div>"+
"				<span>"+e+"</span>"+
"			</div>";
});
let htmlStr = "<div id=\"ChuckPanel\">"+
"		<div id=\"CpanelSwitch\" onclick='ChuckPanel.closeWindow()'>—</div>"+
"		<div id=\"Cbgimg\"></div>"+
"		<div id=\"Ctitle\">"+options.title+"</div>"+
"		<div id=\"Cmain\">"+
 
		htmlFunctionListStr +
 
"		</div>"+
"		<div id=\"Cconctrol\">"+
"			<div id=\"CsaveBtn\" onclick='ChuckPanel.saveAndRefresh()'>保存并刷新</div>"+
"			<div id=\"CcancelBtn\" onclick='ChuckPanel.closeWindow()'>取消</div>"+
"	</div>"+
"</div>";
 
ChuckPanel.waitToLoad(options.attachElement,function() {
	 $(htmlStr).prependTo(options.attachElement);
})
 
 $(".CswitchBtn input").click(function(e){
 	ChuckPanelDate[e.currentTarget.id] = e.currentTarget.checked;
 	if(typeof(ChuckPanel.event)=="function")
 		ChuckPanel.event(e.currentTarget.id,e.currentTarget.checked);
 	else
	{
		console.warn("请定义ChuckPanel.event(id,value)函数以决定当选项被改变时触发的函数,其中id为发生改变的选项名,value为选项值");
 		console.warn("示例:\nChuckPanel.loadevent = function(){\nconsole.log(ChuckPanelDate);\n};")
 		console.warn("注意!该函数的定义必须在执行init函数之前,否则无法识别!");
	};
});
 ChuckPanel.load(options);
 
  	if(typeof(ChuckPanel.loadevent)=="function")
 		ChuckPanel.loadevent();
 	else
	{
		console.warn("请定义ChuckPanel.loadevent()函数以决定载入完成后需要触发的各个函数,具体值请调用 ChuckPanelDate");
 		console.warn("示例:\nChuckPanel.event = function(id,value){\nconsole.log(id+\"==>\"+value);\n};")
 
	};
};
ChuckPanel.load = function (options) {
	ChuckPanelDate = JSON.parse(localStorage.getItem("ChuckPanelDate"));
	if(ChuckPanelDate==null){
		ChuckPanelDate={};
		ChuckPanelDate.options = options;
		return false;
	}
	options = ChuckPanelDate.options
	options.functionNameArray.forEach(function(e,i){
	$("#"+options.functionIdArrary[i]).prop("checked",ChuckPanelDate[options.functionIdArrary[i]]);
});
}
ChuckPanel.save = function(){
	ChuckPanelDate.options.functionNameArray.forEach(function(e,i){
	ChuckPanelDate[ChuckPanelDate.options.functionIdArrary[i]]=$("#"+ChuckPanelDate.options.functionIdArrary[i]).prop("checked");
});
	localStorage.setItem("ChuckPanelDate",JSON.stringify(ChuckPanelDate));
}
ChuckPanel.saveAndRefresh = function(){
	ChuckPanel.save();
	location.reload();
}