MktoForms2 :: Destyle Marketo form

HTML

<script src="//app-ab09.marketo.com/js/forms2/js/forms2.min.js"></script>
<form id="mktoForm_1473"></form>

JavaScript

/*
* Create a completely barebones, user-styles-only Marketo form
* by removing inline STYLE attributes and disabling child STYLE elements
*/

MktoForms2.loadForm("//app-ab09.marketo.com", "729-DHM-431", 1473);
MktoForms2.whenRendered(function (form) {
    var formEl = form.getFormElem()[0],
    _forEach = Function.prototype.call.bind(Array.prototype.forEach);

    // remove element styles from root and children
    _forEach(document.querySelectorAll('#' + formEl.id + ', #' + formEl.id + ' [style]'),function(el){
			el.removeAttribute('style');
    });
    

    // disable all Marketo-sourced stylesheets
    _forEach(document.styleSheets,function(ss) {
        var ssLoc = document.createElement('A');
        ssLoc.href = ss.href;

        if ( /\.marketo\.com$/.test(ssLoc.hostname) //  external STYLEs
        ||
        ((ss.ownerNode || ss.owningElement).parentNode == formEl)) { //  inline STYLEs within FORM tag
            ss.disabled = true;
        }
    });
});