1 2(function (){ 3 window.onpageshow = function(event) { 4 if ( event.persisted || (window.performance && window.performance.navigation.type == 2)) { 5 // Back Forward Cacheë¡ ë¸ë¼ì°ì ê° ë¡ë©ë ê²½ì° í¹ì ë¸ë¼ì°ì ë¤ë¡ê°ê¸° íì ê²½ì° 6 if($('.loading-dots').css("display") === "block"){ 7 $('.loading-dots').hide(); 8 } 9 } 10 } 11})(); 12var comm = { 13 setSessionParams : function(key, obj) { 14 // sessionStorageì ìë paramsì ê°ì ì í í´ì£¼ë í¨ì 15 if(obj){ 16 sessionStorage[key] = JSON.stringify(obj); 17 }else{ 18 sessionStorage.params = JSON.stringify(key); 19 } 20 }, 21 getSessionParams : function(key) { 22 // sessionStorageì ìë params를 ê°ì ¸ì¤ë í¨ì 23 var _res; 24 if(key){ 25 26 if(typeof sessionStorage[key] == "string") { 27 _res = JSON.parse(sessionStorage[key]); 28 } else { 29 _res = sessionStorage[key]; 30 } 31 }else{ 32 if(typeof sessionStorage.params == "string") { 33 _res = JSON.parse(sessionStorage.params); 34 } else if(typeof sessionStorage.params == "undefined" || typeof sessionStorage.params == "null") { 35 _res = {}; 36 } else { 37 _res = sessionStorage.params; 38 } 39 } 40 console.log("getSessionParams", _res); //TODO ì¤íì ìì 41 return _res; 42 }, 43 removeSessionParams: function(key) { 44 // sessionStorageì ìë params를 ì´ê¸°í í´ì£¼ë í¨ì 45 if(key){ 46 delete sessionStorage[key]; 47 }else{ 48 sessionStorage.params = JSON.stringify({}); 49 } 50 }, 51 addSessionParams : function(key, value) { 52 // sessionStorageì ìë paramsì ìë¡ì´ key-value를 ì¶ê°í´ì£¼ë í¨ì 53 let temp = this.getSessionParams(); 54 temp[key] = value; 55 this.setSessionParams(temp); 56 }, 57 serializeObject : function() { 58 var self = this, 59 json = {}, 60 push_counters = {}, 61 patterns = { 62 "validate": /^[a-zA-Z][a-zA-Z0-9_]*(?:\[(?:\d*|[a-zA-Z0-9_]+)\])*$/, 63 "key": /[a-zA-Z0-9_]+|(?=\[\])/g, 64 "push": /^$/, 65 "fixed": /^\d+$/, 66 "named": /^[a-zA-Z0-9_]+$/ 67 }; 68 69 70 this.build = function(base, key, value){ 71 base[key] = value; 72 return base; 73 }; 74 75 this.push_counter = function(key){ 76 if(push_counters[key] === undefined){ 77 push_counters[key] = 0; 78 } 79 return push_counters[key]++; 80 }; 81 82 $.each($(this).serializeArray(), function(){ 83 84 // Skip invalid keys 85 if(!patterns.validate.test(this.name)){ 86 return; 87 } 88 89 var k, 90 keys = this.name.match(patterns.key), 91 merge = this.value, 92 reverse_key = this.name; 93 94 while((k = keys.pop()) !== undefined){ 95 96 // Adjust reverse_key 97 reverse_key = reverse_key.replace(new RegExp("\\[" + k + "\\]$"), ''); 98 99 // Push 100 if(k.match(patterns.push)){ 101 merge = self.build([], self.push_counter(reverse_key), merge); 102 } 103 104 // Fixed 105 else if(k.match(patterns.fixed)){ 106 merge = self.build([], k, merge); 107 } 108 109 // Named 110 else if(k.match(patterns.named)){ 111 merge = self.build({}, k, merge); 112 } 113 } 114 115 json = $.extend(true, json, merge); 116 }); 117 118 return json; 119 }, 120 throttle: function(fn, wait = 80) { 121 let last = 0; 122 return (...args) => { 123 const now = Date.now(); 124 if (now - last >= wait) { last = now; fn.apply(this, args); } 125 }; 126 } 127} 128 129$.fn.serializeObject = comm.serializeObject
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.