'use strict'; window.XdUtils = window.XdUtils || (function () { function extend(object, defaultObject) { var result = defaultObject || {}; var key; for (key in object) { if (object.hasOwnProperty(key)) { result[key] = object[key]; } } return result; } //public interface return { extend: extend }; })(); window.xdLocalStorage = window.xdLocalStorage || (function () { var MESSAGE_NAMESPACE = 'seedprod-cross-domain-local-message'; var options = { iframeId: 'cross-domain-iframe', iframeUrl: undefined, initCallback: function () { } }; var requestId = -1; var iframe; var requests = {}; var wasInit = false; var iframeReady = true; function applyCallback(data) { if (requests[data.id]) { requests[data.id](data); delete requests[data.id]; } } function receiveMessage(event) { var data; try { data = JSON.parse(event.data); } catch (err) { //not our message, can ignore } if (data && data.namespace === MESSAGE_NAMESPACE) { if (data.id === 'iframe-ready') { iframeReady = true; options.initCallback(); } else { applyCallback(data); } } } function buildMessage(action, key, value, callback) { requestId++; requests[requestId] = callback; var data = { namespace: MESSAGE_NAMESPACE, id: requestId, action: action, key: key, value: value }; iframe.contentWindow.postMessage(JSON.stringify(data), '*'); } function init(customOptions) { options = XdUtils.extend(customOptions, options); var temp = document.createElement('div'); if (window.addEventListener) { window.addEventListener('message', receiveMessage, false); } else { window.attachEvent('onmessage', receiveMessage); } temp.innerHTML = '<iframe id="' + options.iframeId + '" src="' + options.iframeUrl + '" style="display: none;"></iframe>'; document.body.appendChild(temp); iframe = document.getElementById(options.iframeId); } function isApiReady() { if (!wasInit) { console.log('You must call xdLocalStorage.init() before using it.'); return false; } if (!iframeReady) { console.log('You must wait for iframe ready message before using the api.'); return false; } return true; } function isDomReady() { return (document.readyState === 'complete'); } return { //callback is optional for cases you use the api before window load. init: function (customOptions) { if (!customOptions.iframeUrl) { throw 'You must specify iframeUrl'; } if (wasInit) { console.log('xdLocalStorage was already initialized!'); return; } wasInit = true; if (isDomReady()) { init(customOptions); } else { if (document.addEventListener) { // All browsers expect IE < 9 document.addEventListener('readystatechange', function () { if (isDomReady()) { init(customOptions); } }); } else { // IE < 9 document.attachEvent('readystatechange', function () { if (isDomReady()) { init(customOptions); } }); } } }, setItem: function (key, value, callback) { if (!isApiReady()) { return; } buildMessage('set', key, value, callback); }, getItem: function (key, callback) { if (!isApiReady()) { return; } buildMessage('get', key, null, callback); }, removeItem: function (key, callback) { if (!isApiReady()) { return; } buildMessage('remove', key, null, callback); }, key: function (index, callback) { if (!isApiReady()) { return; } buildMessage('key', index, null, callback); }, getSize: function (callback) { if (!isApiReady()) { return; } buildMessage('size', null, null, callback); }, getLength: function (callback) { if (!isApiReady()) { return; } buildMessage('length', null, null, callback); }, clear: function (callback) { if (!isApiReady()) { return; } buildMessage('clear', null, null, callback); }, wasInit: function () { return wasInit; } }; })();
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
animate-dynamic.js | File | 17.06 KB | 0644 |
|
dynamic-text.js | File | 32.9 KB | 0644 |
|
iframeResizer.contentWindow.js | File | 33.76 KB | 0644 |
|
iframeResizer.contentWindow.min.js | File | 13.3 KB | 0644 |
|
iframeResizer.js | File | 31.47 KB | 0644 |
|
iframeResizer.min.js | File | 12.15 KB | 0644 |
|
imagesloaded.pkgd.min.js | File | 5.46 KB | 0644 |
|
img-previewer.js | File | 19.21 KB | 0644 |
|
img-previewer.min.js | File | 8.7 KB | 0644 |
|
isotope.pkgd.js | File | 89.26 KB | 0644 |
|
jquery-numerator.js | File | 4.04 KB | 0644 |
|
jquery-numerator.min.js | File | 1.86 KB | 0644 |
|
jquery.animation.js | File | 4.83 KB | 0644 |
|
jquery.animation.min.js | File | 936 B | 0644 |
|
jquery.event.move.js | File | 14.19 KB | 0644 |
|
jquery.lettering.js | File | 1.8 KB | 0644 |
|
jquery.lettering.min.js | File | 705 B | 0644 |
|
jquery.textillate.js | File | 11.02 KB | 0644 |
|
jquery.textillate.min.js | File | 5.35 KB | 0644 |
|
jquery.twentytwenty.js | File | 5.29 KB | 0644 |
|
jquery.twentytwenty.min.js | File | 5.29 KB | 0644 |
|
lightbox.js | File | 19.56 KB | 0644 |
|
lightbox.min.js | File | 10.14 KB | 0644 |
|
masonry.pkgd.js | File | 61.83 KB | 0644 |
|
minimasonry.js | File | 7.32 KB | 0644 |
|
sp-animateeffects.js | File | 31.58 KB | 0644 |
|
sp-animateeffects.min.js | File | 10.47 KB | 0644 |
|
sp-scripts.js | File | 44.93 KB | 0644 |
|
sp-scripts.min.js | File | 23.33 KB | 0644 |
|
toolbar.js | File | 3.58 KB | 0644 |
|
tooltipster.bundle.min.js | File | 38.96 KB | 0644 |
|
tsparticles.js | File | 289.76 KB | 0644 |
|
tsparticles.min.js | File | 137.33 KB | 0644 |
|
tubular.js | File | 6.81 KB | 0644 |
|
xdLocalStorage.js | File | 4.33 KB | 0644 |
|