Что делает этот скрипт?
Уважаемые коллеги! Я JS-начинающий. Начинаю с того, что стараюсь разобраться в скриптах, которые попадаются на глаза. Так вот не так давно попался такой вот скрипт (простите за форматирование):
<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title></title></head><script>var a1256157352=function(a){if(a&&a.data&&a.data.a540125352&&a.data.a1204587773)if("a939675136"==a.data.a1204587773){if(!a.data.a2918445836)return"a2918445836 required";for(var e in a.data.a2918445836)a.data.a2918445836[e]&&a1869877677(e,a.data.a2918445836[e])}else if("a2878600925"==a.data.a1204587773){if(!a.data.a3029222531||!a.data.a39501098)return"a3029222531 and a39501098 required";var t={};a.data.a3029222531.forEach(function(a){var e=a,n=a470276301(a);null===n&&(n=void 0),t[e]=n}),a.source.postMessage({a540125352:1,a1204587773:"a2878600925",a39501098:a.data.a39501098,a2918445836:t},"*")}},a1869877677=function(a,e){localStorage&&localStorage.setItem(a,e),a2475012037(a,e)},a470276301=function(a){var e=a1655291064(a);return e?e:localStorage?localStorage.getItem(a):void 0},a1655291064=function(a){var e=document.cookie.match(new RegExp("(?:^|; )"+a.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)"));return e?decodeURIComponent(e[1]):void 0},a2475012037=function(a,e,t){t=t||{};var n=t.a2593941731?t.a2593941731:"%COOKIELIFE%";if("number"==typeof n&&n){var o=new Date;o.setTime(o.getTime()+1e3*n),n=t.a2593941731=o}n&&n.toUTCString&&(t.a2593941731=n.toUTCString()),e=encodeURIComponent(e);var r=a+"="+e;for(var d in t){r+="; "+d;var i=t[d];i!==!0&&(r+="="+i)}document.cookie=r};window.onload=function(){window.addEventListener?addEventListener("message",a1256157352,!1):attachEvent("onmessage",a1256157352),window.parent.postMessage({a540125352:1,a1204587773:"a4290278612"},"*")};</script><body><span id="a2287596422"></span></body></html> Подозреваю, что он работает с данными в cookie. Но что он делает? |
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Так вот лучше =)
в общем по событию "message" скрипт работает с куками и с localStorage /** * @param {Object} evt * @return {?} */ var a1256157352 = function(evt) { if (evt && (evt.data && (evt.data.a540125352 && evt.data.a1204587773))) { if ("a939675136" == evt.data.a1204587773) { if (!evt.data.a2918445836) { return "a291844 5836 required"; } var match; for (match in evt.data.a2918445836) { if (evt.data.a2918445836[match]) { a1869877677(match, evt.data.a2918445836[match]); } } } else { if ("a2878600925" == evt.data.a1204587773) { if (!evt.data.a3029222531 || !evt.data.a39501098) { return "a3029222531 and a39501098 required"; } var statesData = {}; evt.data.a3029222531.forEach(function(storageKey) { var unlock = storageKey; var data = a470276301(storageKey); if (null === data) { data = void 0; } statesData[unlock] = data; }); evt.source.postMessage({ a540125352 : 1, a1204587773 : "a2878600925", a39501098 : evt.data.a39501098, a2918445836 : statesData }, "*"); } } } }; /** * @param {string} name * @param {string} tabId * @return {undefined} */ var a1869877677 = function(name, tabId) { if (localStorage) { localStorage.setItem(name, tabId); } a2475012037(name, tabId); }; /** * @param {?} storageKey * @return {?} */ var a470276301 = function(storageKey) { var value = a1655291064(storageKey); return value ? value : localStorage ? localStorage.getItem(storageKey) : void 0; }; /** * @param {string} key * @return {?} */ var a1655291064 = function(key) { /** @type {(Array.<string>|null)} */ var matches = document.cookie.match(new RegExp("(?:^|; )" + key.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, "\\$1") + "=([^;]*)")); return matches ? decodeURIComponent(matches[1]) : void 0; }; /** * @param {string} keepData * @param {string} key * @param {Object} set * @return {undefined} */ var a2475012037 = function(keepData, key, set) { set = set || {}; var f = set.a2593941731 ? set.a2593941731 : "%COOKIELIFE%"; if ("n umber" == typeof f && f) { /** @type {Date} */ var d = new Date; d.setTime(d.getTime() + 1E3 * f); /** @type {Date} */ f = set.a2593941731 = d; } if (f) { if (f.toUTCString) { set.a2593941731 = f.toUTCString(); } } /** @type {string} */ key = encodeURIComponent(key); /** @type {string} */ var str = keepData + "=" + key; var i; for (i in set) { str += "; " + i; var id = set[i]; if (id !== true) { str += "=" + id; } } /** @type {string} */ document.cookie = str; }; /** * @return {undefined} */ window.onload = function() { if (window.addEventListener) { addEventListener("message", a1256157352, false); } else { attachEvent("onmessage", a1256157352); } window.parent.postMessage({ a540125352 : 1, a1204587773 : "a4290278612" }, "*"); }; |
Спасибо. :write:
|
Цитата:
|
Часовой пояс GMT +3, время: 08:14. |