백괴게임>Bd3076 |
imported>Hsl0 |
(사용자 11명의 중간 판 26개는 보이지 않습니다) |
1번째 줄: |
1번째 줄: |
| <noinclude>{{관리자 요청 보존|2018|11}}</noinclude>
| | #REDIRECT [[보존:관리자 요청/2018년 11월]] |
| | |
| == Common.js 수정 요청 ==
| |
| | |
| DB 플러그인 파트를
| |
| <pre>
| |
| /** DB기능 초기화
| |
| * [[틀:DB]]를 사용 가능하게 해 줍니다.
| |
| * [[사용자:BANIP|BANIP]]
| |
| */
| |
| | |
| function enableLocalStorage() {
| |
| // 문서 미리보기 상태일 시 종료
| |
| if (location.pathname === "/w/index.php") return;
| |
| | |
| //플러그인의 모든 키 순회
| |
| function forEach(object, callback) {
| |
| for (var key in object) {
| |
| var variable = object[key];
| |
| callback(variable, key);
| |
| }
| |
| }
| |
| | |
| function setLocalStorage(parentKey, datas) {
| |
| var stringKeys = JSON.stringify(Object.keys(datas));
| |
| localStorage.setItem(parentKey + "/__keys__", stringKeys);
| |
| forEach(datas, function(v, i) {
| |
| if (i === "action") return;
| |
| localStorage.setItem(parentKey + "/" + i, v);
| |
| });
| |
| }
| |
| | |
| | |
| function getLocalStorage(parentKey) {
| |
| var datas = {};
| |
| var stringKeys = localStorage.getItem(parentKey + "/__keys__");
| |
| if (stringKeys === null) return null;
| |
| var keys = JSON.parse(stringKeys);
| |
| keys.forEach(function(key) {
| |
| datas[key] = localStorage.getItem(parentKey + "/" + key);
| |
| })
| |
| return datas;
| |
| }
| |
| | |
| function clearLocalStorage(parentKey) {
| |
| var datas = {};
| |
| var stringKeys = localStorage.getItem(parentKey + "/__keys__");
| |
| if (stringKeys === null) return null;
| |
| var keys = JSON.parse(stringKeys);
| |
| keys.forEach(function(key) {
| |
| datas[key] = localStorage.removeItem(parentKey + "/" + key);
| |
| })
| |
| }
| |
| | |
| function getSearch() {
| |
| return geturlSearch();
| |
| }
| |
| | |
| function searchParamToString(searchParamsObj){
| |
| var params = "?" + Object.entries(searchParamsObj)
| |
| .map(function(v){ return v.join("=") })
| |
| .join("&");
| |
| return encodeURI(params);
| |
| }
| |
|
| |
| function setSearch(datas) {
| |
| var searchParams = getSearch();
| |
| forEach(datas, function(v, i) {
| |
| searchParams[i] = v;
| |
| });
| |
| location.search = searchParamToString(searchParams);
| |
| }
| |
| | |
| function hasSearch() {
| |
| return !(location.search === "");
| |
| }
| |
| | |
| $(".controlLocalStorage").each(function() {
| |
| var parentKey = $(this).data("key");
| |
| var behavior = $(this).data("behavior");
| |
| switch (behavior) {
| |
| case "세이브":
| |
| if (!hasSearch()) return;
| |
| var datas = getSearch();
| |
| clearLocalStorage(parentKey);
| |
| setLocalStorage(parentKey, datas);
| |
| break;
| |
| case "로드":
| |
| if (hasSearch()) return;
| |
| var datas = getLocalStorage(parentKey, datas);
| |
| if (datas === null) return;
| |
| setSearch(datas);
| |
| break;
| |
| case "초기화":
| |
| clearLocalStorage(parentKey);
| |
| break;
| |
| }
| |
| })
| |
| | |
| | |
| }
| |
| $(enableLocalStorage);
| |
| </pre>
| |
| 처럼 바꿔주세요. 초기화 기능을 추가했습니다.
| |