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) + ".");
}
// "dIr" == "documentIterator"
function dIr(dt, f) {
function ifsr( fs )
{
for (var i = 0; i < fs.length; ++i)
{
try {
dIr(fs[i].contentDocument, fs[i]); // recursive call
}
catch (e) {
alert(e || "Unspecified error");
}
}
}
if (dt == null) {return;}
eD(dt, f);
ifsr( dt.getElementsByTagName("FRAME") );
ifsr( dt.getElementsByTagName("IFRAME") );
}
// iterate through all documents
dIr(document, null);
}());