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);
})();