PluginProbe
Tiered Pricing Table for WooCommerce / 8.0.2
Tiered Pricing Table for WooCommerce v8.0.2
8.0.2 7.1.7 7.1.5 7.1.4 7.1.1 6.5.0 6.4.0 6.1.0 trunk 1.0 1.1 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.2.0 2.2.1 2.2.2 2.2.3 2.3.0 2.3.1 2.3.2 2.3.3 All 91 releases
← All changes | freemius/assets/js/postmessage.js +1 -135 2.0 → 8.0.2 View file →
@@ -1,135 +1 @@
1 -(function ($, undef) {
2 - var global = this;
3 -
4 - // Namespace.
5 - global.FS = global.FS || {};
6 -
7 - global.FS.PostMessage = function ()
8 - {
9 - var
10 - _is_child = false,
11 - _postman = new NoJQueryPostMessageMixin('postMessage', 'receiveMessage'),
12 - _callbacks = {},
13 - _base_url,
14 - _parent_url = decodeURIComponent(document.location.hash.replace(/^#/, '')),
15 - _parent_subdomain = _parent_url.substring(0, _parent_url.indexOf('/', ('https://' === _parent_url.substring(0, ('https://').length)) ? 8 : 7)),
16 - _init = function () {
17 - _postman.receiveMessage(function (e) {
18 - var data = JSON.parse(e.data);
19 -
20 - if (_callbacks[data.type]) {
21 - for (var i = 0; i < _callbacks[data.type].length; i++) {
22 - // Execute type callbacks.
23 - _callbacks[data.type][i](data.data);
24 - }
25 - }
26 - }, _base_url);
27 - },
28 - _hasParent = ('' !== _parent_url),
29 - $window = $(window),
30 - $html = $('html');
31 -
32 - return {
33 - init : function (url, iframes)
34 - {
35 - _base_url = url;
36 - _init();
37 -
38 - // Automatically receive forward messages.
39 - FS.PostMessage.receiveOnce('forward', function (data){
40 - window.location = data.url;
41 - });
42 -
43 - iframes = iframes || [];
44 -
45 - if (iframes.length > 0) {
46 - $window.on('scroll', function () {
47 - for (var i = 0; i < iframes.length; i++) {
48 - FS.PostMessage.postScroll(iframes[i]);
49 - }
50 - });
51 - }
52 - },
53 - init_child : function ()
54 - {
55 - this.init(_parent_subdomain);
56 -
57 - _is_child = true;
58 -
59 - // Post height of a child right after window is loaded.
60 - $(window).bind('load', function () {
61 - FS.PostMessage.postHeight();
62 -
63 - // Post message that window was loaded.
64 - FS.PostMessage.post('loaded');
65 - });
66 - },
67 - hasParent : function ()
68 - {
69 - return _hasParent;
70 - },
71 - postHeight : function (diff, wrapper) {
72 - diff = diff || 0;
73 - wrapper = wrapper || '#wrap_section';
74 - this.post('height', {
75 - height: diff + $(wrapper).outerHeight(true)
76 - });
77 - },
78 - postScroll : function (iframe) {
79 - this.post('scroll', {
80 - top: $window.scrollTop(),
81 - height: ($window.height() - parseFloat($html.css('paddingTop')) - parseFloat($html.css('marginTop')))
82 - }, iframe);
83 - },
84 - post : function (type, data, iframe)
85 - {
86 - console.debug('PostMessage.post', type);
87 -
88 - if (iframe)
89 - {
90 - // Post to iframe.
91 - _postman.postMessage(JSON.stringify({
92 - type: type,
93 - data: data
94 - }), iframe.src, iframe.contentWindow);
95 - }
96 - else {
97 - // Post to parent.
98 - _postman.postMessage(JSON.stringify({
99 - type: type,
100 - data: data
101 - }), _parent_url, window.parent);
102 - }
103 - },
104 - receive: function (type, callback)
105 - {
106 - console.debug('PostMessage.receive', type);
107 -
108 - if (undef === _callbacks[type])
109 - _callbacks[type] = [];
110 -
111 - _callbacks[type].push(callback);
112 - },
113 - receiveOnce: function (type, callback)
114 - {
115 - if (this.is_set(type))
116 - return;
117 -
118 - this.receive(type, callback);
119 - },
120 - // Check if any callbacks assigned to a specified message type.
121 - is_set: function (type)
122 - {
123 - return (undef != _callbacks[type]);
124 - },
125 - parent_url: function ()
126 - {
127 - return _parent_url;
128 - },
129 - parent_subdomain: function ()
130 - {
131 - return _parent_subdomain;
132 - }
133 - };
134 - }();
135 -})(jQuery);
1 +!function(t,e){var s,n,o,i,r,a,c,p,u=this;u.FS=u.FS||{},u.FS.PostMessage=(n=new NoJQueryPostMessageMixin("postMessage","receiveMessage"),o={},i=decodeURIComponent(document.location.hash.replace(/^#/,"")),r=i.substring(0,i.indexOf("/","https://"===i.substring(0,8)?8:7)),a=""!==i,c=t(window),p=t("html"),{init:function(t,e){s=t,n.receiveMessage((function(t){var e=JSON.parse(t.data);if(o[e.type])for(var s=0;s<o[e.type].length;s++)o[e.type][s](e.data)}),s),FS.PostMessage.receiveOnce("forward",(function(t){t.url&&(t.url.startsWith("http://")||t.url.startsWith("https://"))&&(window.location=t.url)})),(e=e||[]).length>0&&c.on("scroll",(function(){for(var t=0;t<e.length;t++)FS.PostMessage.postScroll(e[t])}))},init_child:function(){a&&(this.init(r),t(window).bind("load",(function(){FS.PostMessage.postHeight(),FS.PostMessage.post("loaded")})))},hasParent:function(){return a},postHeight:function(e,s){e=e||0,s=s||"#wrap_section",this.post("height",{height:e+t(s).outerHeight(!0)})},postScroll:function(t){this.post("scroll",{top:c.scrollTop(),height:c.height()-parseFloat(p.css("paddingTop"))-parseFloat(p.css("marginTop"))},t)},post:function(t,e,s){console.debug("PostMessage.post",t),s?n.postMessage(JSON.stringify({type:t,data:e}),s.src,s.contentWindow):n.postMessage(JSON.stringify({type:t,data:e}),i,window.parent)},receive:function(t,s){console.debug("PostMessage.receive",t),e===o[t]&&(o[t]=[]),o[t].push(s)},receiveOnce:function(t,e){this.is_set(t)||this.receive(t,e)},is_set:function(t){return e!=o[t]},parent_url:function(){return i},parent_subdomain:function(){return r}})}(jQuery);