// ==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 } }