/** * cross-storage - Cross domain local storage * * @version 0.8.1 * @link https://github.com/zendesk/cross-storage * @author Daniel St. Jules * @copyright Zendesk * @license Apache-2.0 */ !function(e){var r={};r.init=function(e){var t=!0;try{window.localStorage||(t=!1)}catch(n){t=!1}if(!t)try{return window.parent.postMessage("cross-storage:unavailable","*")}catch(n){return}r._permissions=e||[],r._installListener(),window.parent.postMessage("cross-storage:ready","*")},r._installListener=function(){var e=r._listener;window.addEventListener?window.addEventListener("message",e,!1):window.attachEvent("onmessage",e)},r._listener=function(e){var t,n,o,i,s,a,l;if(t="null"===e.origin?"file://":e.origin,"cross-storage:poll"===e.data)return window.parent.postMessage("cross-storage:ready",e.origin);if("cross-storage:ready"!==e.data&&(o=JSON.parse(e.data),i=o.method.split("cross-storage:")[1])){if(r._permitted(t,i))try{a=r["_"+i](o.params)}catch(u){s=u.message}else s="Invalid permissions for "+i;l=JSON.stringify({id:o.id,error:s,result:a}),n="file://"===t?"*":t,window.parent.postMessage(l,n)}},r._permitted=function(e,t){var n,o,i,s;if(n=["get","set","del","clear","getKeys"],!r._inArray(t,n))return!1;for(o=0;o1?n:n[0]},r._del=function(e){for(var r=0;re;e++)t.push(window.localStorage.key(e));return t},r._inArray=function(e,r){for(var t=0;t