2011-02-24 32 views
5

he creado un archivo .js, y luego lo incluyó en las páginas HTML por:javascript onclick une a un .js en un archivo

<script type="text/javascript" src="yourexternalfile.js"></script> 

Como llamar en la función del archivo .js usando onclick = "...."?

sé que va a ser algo así como:

<input type="BUTTON" value="Exit" onclick="javascript: ???;" > 

pero no puedo averiguarlo ...

+1

¿Para descargar un archivo js y ejecutar algo en él? –

Respuesta

1

Para llamar a una función dentro de un archivo externo, asegúrese de que el archivo se carga primero y luego llámalo como siempre (siempre que se exponga al alcance que lo necesites).

0

incluyen el archivo java script externo en su página (preferiblemente en la etiqueta de la cabeza) usando

<script type="text/javascript" src="yourexternalfile.js"></script> 

y entonces usted puede llamar a cualquier función definida en el js presentar

0

uso <script type="text/javascript" src=""> importar el js archivo dentro de tu página.

+0

bien, ¿es esta la forma correcta de llamar a la función? input type = "BUTTON" value = "Exit" onclick = "javascript: OK_Cancel();" – Karl

8

Si está utilizando jQuery, puede hacerlo de esta manera,

 <input type="button" onclick="javascript: $.getScript('../scripts/yourfilepath' , function(){ youFunctionCall() ; });" /> 

Esto descargará el archivo JS cuando se cliked el botón y hará la función de llamada en su interior.

0

Saber cuándo se carga (a) un archivo JS, y (b) se hace la ejecución es complicado, ya que no es compatible con todos los navegadores.

creo que está pensando algo en la línea de:

var s = document.createElement("script"), 
    f = document.getElementsByTagName('body')[0]; 
s.type = 'text/javascript'; 
s.src = "https://ajax.googleapis.com/ajax/libs/dojo/1.5.0/dojo/dojo.xd.js"; 

s.addEventListener("load", function() { 
    console.log("script loaded"); 
}); 

f.appendChild(s); 

Como he mencionado anteriormente, no va a funcionar para todos los navegadores. E incluso si lo hace, no será muy útil para usted si realmente está tratando de ejecutar algún código basado en el JS que está incorporado dinámicamente.

La única manera confiable de ejecutar algo cuando se carga una dependencia es ajustar esa dependencia en una función. De esta forma, cuando el navegador analiza ese JS, ejecutará esa función, lo que le permitirá saber que puede comenzar a usar lo que sea que desee traer. Esta es exactamente la razón por la que JSONP funciona de la manera en que funciona.

Si esto es lo que quiere hacer, eche un vistazo a RequireJS.

7

Digamos que su función era ...

function myFunction() { 
    alert("hello!"); 
} 

Un ejemplo del gatillo sería ...

<input type="button" onclick="myFunction(); return false;" value="Click me!" /> 
+0

muchas gracias! :) – Karl

+0

De nada. Me encantan las preguntas simples –

0

Ha intentado poner realmente en el nombre de la función?Al igual que onclick = 'myFunction()'

0

Yo sugeriría añadiendo el evento onclick en el archivo JS, así:

html:

<input type="button" id="myButton"/> 

JS archivo:

var myButton = document.getElementById('myButton'); 
     myButton.onclick = function(){myFunction()}; 

De esta forma puede programar el elemento desde el archivo Javascript. Simplemente póngalo en una función que llame con carga.

Cuestiones relacionadas