JSFiddle - React, Tailwind, and code Playground
by Che Sampat
HTML
<div id="mc63dgcbrmbzqv"><a href="https://app.moonclerk.com/pay/63dgcbrmbzqv">6875</a></div>
<script type="text/javascript">
var mc63dgcbrmbzqv;
(function(d, t) {
var s = d.createElement(t),
opts = {
"checkoutToken": "63dgcbrmbzqv",
"width": "100%"
};
s.src = 'https://d2l7e0y6ygya2s.cloudfront.net/assets/embed.js';
s.onload = s.onreadystatechange = function() {
var rs = this.readyState;
if (rs)
if (rs != 'complete')
if (rs != 'loaded') return;
try {
mc63dgcbrmbzqv = new MoonclerkEmbed(opts);
mc63dgcbrmbzqv.display();
} catch (e) {}
};
var scr = d.getElementsByTagName(t)[0];
scr.parentNode.insertBefore(s, scr);
})(document, 'script');
</script>
JavaScript
(function() {
var o = function(t, e) {
return function() {
return t.apply(e, arguments)
}
},
l = [].slice;
this.MoonclerkEmbed = function() {
function t(t) {
var e;
for (e in this.replaceFrame = o(this.replaceFrame, this), t) t[e], this.options[e] = t[e];
if (this.options.debug = "1" === this.getUrlParameter("mcdebug"), this.log("OPTIONS: ", this.options), !window.postMessage) throw "This browser does not support postMessage.";
this.addEvent(window, "message", this.bindMethod(this.resizeFrame, this))
}
var r, n, i, s;
return t.prototype.options = {
checkoutToken: null,
cid: null,
height: 0,
host: "app.moonclerk.com",
scrollOffsetTop: 0,
ssl: !0,
track: [],
width: "100%"
}, s = n = "", i = r = 0, null, t.prototype.display = function() {
var t;
return t = this.buildFrame(), -1 < this.options.track.indexOf("ga") && null != window.ga ? (this.log("[display()] Google Tracker Configured. Wrapping with tracker."), window.ga(this.loadFrame(t))) : (this.log("[display()] Google Tracker NOT Configured. Loading normally."), this.replaceFrame(t))
}, t.prototype.loadFrame = function(e) {
return o = this,
function(t) {
return o.log("[loadFrame()] Starting GA callback with tracker", t), window.linker = window.linker || new window.gaplugins.Linker(t), o.log("[loadFrame()] iFrame.src BEFORE", e.src), e.src = window.linker.decorate(e.src), o.log("[loadFrame()] iFrame.src AFTER", e.src), o.replaceFrame(e)
};
var o
}, t.prototype.replaceFrame = function(t) {
var e;
return e = document.getElementById("mc" + this.options.checkoutToken), this.log("[replaceFrame()] container BEFORE replace:", e.outerHTML), this.log("[replaceFrame()] replacement content:", t.outerHTML), e.innerHTML = "", e.appendChild(t), this.log("[replaceFrame()] container AFTER replace:", e.outerHTML)
},...