// ==UserScript==
// @name inyectar HTML
// @namespace http://pedro.delgallego.com/
// @description Este script inyecta HTML
// @include file:///home/pedro/programacion/javascript/uno.html
// @include file:///home/pedro/programacion/javascript/barra*
// @include http://barrapunto.com/*/bitacoras
// @include http://barrapunto.com/journal.pl*
// ==/UserScript==
// ***************************************************** Funciones utiles *****************************************************
function DOMNode_insertAfter (newChild,refChild) {
var parentx=refChild.parentNode;
if(parentx.lastChild==refChild) { return parentx.appendChild(newChild);}
else {return parentx.insertBefore(newChild,refChild.nextSibling);}
}
// Settear la aliniacion.
function setAlign(refElemento,newImag){
if (thisElement.href.search("left:") != -1){
thisElement.href = thisElement.href.replace("left:","")
imag.align="left"
}
if (thisElement.href.search("right:") != -1){
thisElement.href = thisElement.href.replace("right:","")
imag.align="right"
}
}
// ***************************************************** Funciones plug *****************************************************
// Crear enlace para subir a delicious
function createDeliciousMe(refElement){
var url="http:"+"//del.icio.us/login/?url="+document.URL + '/&title=barrapunto'
refElement.setAttribute("href",url)
}
// Crear un panel div
function insertDiv(refElement){
// crear DIV
var refDiv,content
refDiv = document.createElement("DIV")
// var re = new RegExp("id=[A-Za-z0-9]{1.10}");
// identity = refElement.search
refDiv.id = "nombrePrueba"
refDiv.display="none"
content =""+refElement.href.replace("insertdiv:","")
refDiv.innerHTML=content
DOMNode_insertAfter(refDiv,refElement)
GM_log('creadao Div ')
}
// Crear insertar cualquier cosa.
function insertar(refElement){
refElement.setAttribute("target","_blank")
var refP,content
refP = document.createElement("P")
content =""+refElement.href.replace("insertar:", "")
refP.innerHTML=content
DOMNode_insertAfter(refP,refElement)
}
// ESte código me lo soplo caricatos, ç
// menos mal que siempre hay gente dispuesta en los foros
function BorrarElemento(ident){
var hijo = document.getElementById(ident);
var padre = hijo.parentNode
padre.removeChild(hijo);
}
// Se borrar a si mismo como los traidores
function Borrarme(eraseElement){
eraseElement.id="borrar"
BorrarElemento("borrar");
}
// ***************************************************** Inicio *****************************************************************
// Etiqueto las tablas por que el ***** de slashcode no pone ni un id
var count =0;
var allTables, Tables;
allTables = document.getElementsByTagName('TABLE');
for (var i = 0; i < allTables.length; i++) {
Tables = allTables[i];
Tables.id="t"+count++
}
var allElements, thisElement;
allElements = document.evaluate('//*[@href]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < allElements.snapshotLength; i++) {
thisElement = allElements.snapshotItem(i);
switch (thisElement.nodeName.toUpperCase()) {
case 'A': // todos los comandos los hepuesto con A pero dejo la puerta abierta para otras cosas
switch (thisElement.protocol) {
// tratamiento de las imagenes
case 'image:':
// crear imagen
var imag
imag = document.createElement("IMG")
// Settear la alineacion
setAlign(thisElement,imag)
// crear direccion solo cambio el protocolo
var direccion
direccion= ""+thisElement.href.replace("image:","http:")
imag.src=direccion
// añadir el elemento y borrar enlace
DOMNode_insertAfter(imag,thisElement)
Borrarme(thisElement)
break;
// comando deliciousme no borrar el elemento!!
case 'deliciousme:':
createDeliciousMe(thisElement)
break;
// comando para inyectar un div
case 'insertdiv:':
insertDiv(thisElement)
break;
case 'insertar:':
insertar(thisElement)
break;
// comando para inyectar un script
case 'insertscript:':
script(thisElement)
break;
case 'deletebanner:':
GM_log('Encontrado Borrar Laterales')
BorrarElemento("t0");
break;
case 'deletebarraslaterales:':
BorrarElemento("t5");
BorrarElemento("t7");
BorrarElemento("t9");
break;
case 'deleteopciones:':
BorrarElemento("t11");
BorrarElemento("t12");
BorrarElemento("t13");
break;
case 'deletefooter:':
document.body.removeChild(document.body.lastChild);
document.body.removeChild(document.body.lastChild);
document.body.removeChild(document.body.lastChild);
break;
// otros casos
default:
}
//otros casos
default:
// do something with other kinds of HTML elements
}
}