Home

Convert to Submit

Source code for bookmarklet Convert to Submit.



javascript:
(function(){
    
    function cE(a)
    {
        var a2 = [];
        for (var k = 0; k < a.length; ++k) {
            a2.push(a[k]);
            }
        return a2;
    }

    function hHat(img)
    {
        return img.hasAttribute("ALT") && ! /\S+/.test(img.alt);
    }

    function hasAttribute(e, a)
    {
        return e.hasAttribute(a);
    }
    var rp = 0;
    var ic = 0;
    var hc = 0;
    function eD(dt) {
        var c = cE( dt.getElementsByTagName("input") );
        for (var k = 0; k < c.length; ++k) {
            var inp = c[k],
                t = inp.getAttribute("type");
            if ( t != null && t.toUpperCase() == "IMAGE" ) {
                var alt = inp.alt;
                var noalt = !hasAttribute(inp, "ALT");
                var hidden = hHat(inp);

                rp += (noalt ? 1 : 0);
                hc += (hidden ? 1 : 0);
                ++ic;
                var nsrc = "[" + inp.src + "]";
                inp.type = "submit";
                inp.value = noalt ? nsrc : (hidden ? "[" + nsrc + "]" : alt);
                }
            }
        alert("Hidden: " + hc + ". ALT-less: " + rp + ", text: "+ (ic - hc - rp) + ".");
    }


    function ifs_( fs )
    {
        for (var i = 0; i < fs.length; ++i)
        {
            try {
                dI_(fs[i].contentDocument, fs[i]); // recursive call
            }
            catch (e) {
                alert(e || "Unspecified error");
            }
        }
    }

    // "dI" == "documentIterator"
    function dI_(dt, f) {
        if (dt == null) {return;}
        eD(dt, f);
        ifs_( dt.getElementsByTagName("FRAME") );
        ifs_( dt.getElementsByTagName("IFRAME") );
    }

    // iterate through all documents
    dI_(document, null);
})();