

Bookmarklet inline W3C_Pseudo_Local_Validator
Bookmarklet hébergé sur ce site W3C_Pseudo_Local_Validator!
Ce bookmarklet permet de faire la vérification w3c d'une page située sur la machine locale.
Source: http://blog.persistent.info/2004/07/pseudo-local-w3c-validator-favelet.html
// these have to be globals since "this" doesn't always work in RequestHandler
var getSourceRequest = null;
var gotSourceResponse = false;
var getSourceRequestHandler = null;
// create the message div
var messageDiv = document.createElement('div');
document.body.appendChild(messageDiv);
var s = messageDiv.style;
s.position = "fixed";
s.top = s.left = s.margin = "0";
s.width = "100%";
s.padding = "0.5em";
s.background = "yellow";
s.textAlign = "center";
s.borderBottom = "solid 1px black";
s.opacity = s.MozOpacity = ".75";
s.fontFamily = "Trebuchet MS, sans-serif";
s.fontSize = "12px";
messageDiv.innerHTML = "Getting page source...";
getDocumentSource(validateSource);
function getDocumentSource(handler)
{
if (typeof XMLHttpRequest != "undefined")
{
getSourceRequest = new XMLHttpRequest();
getSourceRequest.onload = RequestHandler;
getSourceRequest.onerror = RequestHandler;
getSourceRequest.onreadystatechange = RequestHandler;
gotSourceResponse = false;
getSourceRequestHandler = handler;
getSourceRequest.open("GET", window.location, true);
getSourceRequest.send(null);
}
// we can't use MSIE's XMLHttpRequest ActiveX control since it doesn't seem
// to work from the links bar. document.documentElement.outerHTML is close
// but not quite the same thing
else
{
alert("Can\'t get the page\'s source");
}
}
function RequestHandler()
{
if (getSourceRequest.readyState != 4) return;
if (!getSourceRequest.status || getSourceRequest.status == 200)
{
if (!gotSourceResponse)
if (getSourceRequest.responseText)
{
gotSourceResponse = true;
getSourceRequestHandler(getSourceRequest.responseText);
}
else
{
alert("No response.");
}
}
else
{
alert("No response.");
}
}
function validateSource(source)
{
messageDiv.innerHTML = "Sending source to server...";
var formDiv = document.createElement('div');
//formDiv.style.display = "none";
document.body.appendChild(formDiv);
formDiv.innerHTML = '<form id=\'sourceForm\' method=\'post\' target=\'_new\' action=\'http://www.ilu.be/fav/validator\'>' +
'<input type=\'hidden\' id=\'t__sourceFormItem\' name=\'t__sourceFormItem\' />' +
'</form>';
var t__sourceFormItem = document.getElementById("t__sourceFormItem");
t__sourceFormItem.value = source;
var sourceForm = document.getElementById("sourceForm");
sourceForm.submit();
document.body.removeChild(messageDiv);
document.body.removeChild(formDiv);
}