Foros del Web » Programando para Internet » Javascript »

Llamar un .js desde un .js externo (greasymonkey)

Estas en el tema de Llamar un .js desde un .js externo (greasymonkey) en el foro de Javascript en Foros del Web. Hola a todos, gracias de antremano por leer mi inquietud tengo la siguiente situacion: he creado un script .js "externo" (no se si "externo" es ...
  #1 (permalink)  
Antiguo 25/08/2014, 16:28
 
Fecha de Ingreso: agosto-2011
Mensajes: 37
Antigüedad: 12 años, 8 meses
Puntos: 1
Llamar un .js desde un .js externo (greasymonkey)

Hola a todos, gracias de antremano por leer mi inquietud

tengo la siguiente situacion:

he creado un script .js "externo" (no se si "externo" es el adjetivo para ese script) ya que lo he hecho para usarse con greasymonkey.

el objetivo es que si se cumple una regla muy basica en una direccion web (esa comprobacion es la que se hace con el script de greasemonkey al que llamaremos s1.js), se active o se ejecute un script que tengo alojado en la internet llamado s2.js

he probado la opcion

Código PHP:
 document.write('<script src="http://www.paginax/s2.js" type="text/javascript"><\/script>'); 
pero no me sirve, ya que el script principal s1.js esta en el navegador, no en la pagina, por lo que no sirve aplicar "Document.write"

como puedo llamar ese script s2.js, teniendo en cuenta que los scripts no estan en el code de la pagina sino en el navegador?????

Última edición por refresko; 25/08/2014 a las 16:59
  #2 (permalink)  
Antiguo 26/08/2014, 14:08
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 11 meses
Puntos: 1012
Respuesta: Llamar un .js desde un .js externo (greasymonkey)

esto cargará la librería jquery
Cita:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript">
function cargaSRC(src,callback, f) {
var foo = f;
var scripts = document.getElementsByTagName('script');
var cargado = false;
for (var i = 0; i < scripts.length; i++) {
var script_externo = scripts[i].src.split('/');
if (script_externo[script_externo.length-1].toLowerCase() == src.toLowerCase()) {
cargado = true;
alert('no se ha cargado por que ya estaba cargado');
break;
}
}

if (!cargado) {
var elemento = document.createElement('script');
elemento.setAttribute('type', 'text/javascript');

if (elemento.readyState){ // ie
elemento.onreadystatechange = function(){
if (elemento.readyState == "loaded" || elemento.readyState == "complete") {
elemento.onreadystatechange = null;
callback();
}
};
} else {
elemento.onload = function(){
if(typeof(window[foo])=='function') {callback();} else {alert('no estaba cargado y se acaba de cargar. pero la función no existe')} // saber si existe la función ya que siempre se cargará la etiqueta <scri pt src .....></scri pt>

};
}

elemento.setAttribute('src', src);
//document.getElementsByTagName("head")[0].appendChild(elemento);
document.getElementsByTagName('body')[0].appendChild(elemento);
}
}


</script>
</head>

<body>
<script type="text/javascript">
cargaSRC('http://code.jquery.com/jquery-1.4.2.min.js', function() {fnc()}, 'fnc');
</script>
</body>
</html>
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 26/08/2014, 17:17
 
Fecha de Ingreso: agosto-2011
Mensajes: 37
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: Llamar un .js desde un .js externo (greasymonkey)

IsabelM, gracias por responder y querer ayudarme, pero si me sirve este code, sabiendo que el script principal esta en el navegador, y no en el body o en head de la pagina

recuerda que lo que necesito es llamar desde un script (s1.js), otro script (s2.js), pero ese primer script (el llamador), esta en greasemonkey, una extension de mozilla firefox que se emplea para personalizar o diversicar nuestra navegacion!!!

alli no hay ni head ni body, solo script,,

finalmente pregunto, cuando CARGO esta libreria, significa que se ejecuta,???
recuerda que en mi caso, necesito ejecutar el script 2 (s2.js) que esta alojado en una direccion web.

me servira lo que me anexas???

IsabelM, no estoy pidiendo que corrijas lo que dices, y que entonces hagas lo que pido, es solo que quiero explicar mejor mi necesidad, para q quien me pueda ayudar, entienda lo que necesito

Mil Gracias!!!
  #4 (permalink)  
Antiguo 27/08/2014, 15:58
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 11 meses
Puntos: 1012
Respuesta: Llamar un .js desde un .js externo (greasymonkey)

nunca he usado esa extensión, de ahí mi desconocimiento. si write() dices que no sirve y no hay ninguna etiqueta en la que se pueda añadir (append) el archivo externo, me temo que no es posible
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #5 (permalink)  
Antiguo 27/08/2014, 19:18
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Llamar un .js desde un .js externo (greasymonkey)

Si existe un body en la página que el navegador está mostrando, el mismo estará disponible para tu script en greasemonkey. Lee un tutorial: http://hayageek.com/greasemonkey-tutorial/
  #6 (permalink)  
Antiguo 29/08/2014, 19:01
 
Fecha de Ingreso: agosto-2011
Mensajes: 37
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: Llamar un .js desde un .js externo (greasymonkey)

Muchas Gracias por colaborar a ambos,,,, realmente agradezco lo de IsaBelM que me servira para algo que planeo,

Panino5001 me has dado la respuesta talvez sin querer,,, leyendo el enlace que me diste me muestra muy sencillamente que es lo unico que debo hacer,
en el codigo base en greasemonkey, para llamar un script externo solo se coloca la etiqueta // @require

asi que quedaria asi
Código:
// ==UserScript==
// @name        Hello World
// @namespace   http://cualquierweb.com
// @include     *
// @require     http://direccion_del_codigo_java.js
// @version     1
// ==/UserScript==
Muchisimas Gracias

Etiquetas: externo, js
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:37.