wakamole escribió:
function prueba() {alert("funciona");}
var body = document.body.innerHTML;
body = "<center><input type='button' value='enviar' id='benviar' onClick=\"prueba()\"></center>" + body;
document.body.innerHTML = body;
Desde donde estoy ahora, no tengo instalado el greasemonkey, lo miraré en casa dentro de unos días si no te han ayudado antes.
Lo que sí recuerdo, es de haber tenido el mismo problema (o parecido)
Lo que creo recordar, es que el código que inyectas en la página desde GREASEMONKEY, no reconoce las funciones del propio user.script...
Es decir...
El userscript que ejeecuta el greasemonkey, es una cosa, y la página que lee el navegador, otra.
Así que si tu script, le dice al navegador que sobre la página, inserte un formulario:
"document.body.innerHTML = body"
Le estás diciendo SOLAMENTE ESO. Así que el resultado de todo, será la página inicial, más el "body" que has insertado.
No se si me explico.
Si quieres inyectar también variables y funciones en la página... desde greasemonkey, creo recordar que debes generar camppos "<script></script>"
EJEMPLO:
userscript.js escribió:
var body = document.body.innerHTML;
CODIGO_NUEVO='<scri';
CODIGO_NUEVO+='pt>function prueba() {alert("funciona");} variable1=valor1; variable2=valor2;</scr
CODIGO_NUEVO+='ipt>'
CODIGO_NUEVO+="<center><input type='button' value='enviar' id='benviar' onClick=\"prueba()\"></center>"
document.body.innerHTML = CODIGO_NUEVO+body;
Creo recordar, que así, funcionaba perfectamente.
(lo de dividir "en trozos", el texto "<script></script>", se debe a que si lo escribieras todo junto, un un documento HTML, lo entendería como si desde ahí, metieras nuevo código javascript, dentro de otro javascript, lo que daría error, evidentemente. Al ponerlo "por trozos", el HTML ya no se entera del segundo "<script>", al ser "<scr" + "ipt>")
Por cierto... a tener en cuenta:
"<center>" No uses esta etiqueta, usa: <span style="text-align:center;"></span>
(la etiqueta "span", ya no se debe usar.)
body = "<center><input type='button' value='enviar' id='benviar' onClick=\"prueba()\"></center>"En lugar de eso, mejor sería así:
body = '<center><input type="button" value="enviar" id="benviar" onclick="prueba()"></center>'
(En JavaScript, es mejor definir las variables con comilla sencilla, y los valores de HTML, con comilla doble. A la vez, te evitas escapar la comilla doble, como hiciste en "onclick", que por cierto, ha de ser todo en minúsculas, según la nueva recomendación para XHTML)
Además, intenta terminar con "
punto y coma" cada sentencia.
¿ayudado?