2011-08-12 26 views
9

Hay algún código que quería poner en JSFiddle. No funcionó. Restringir su alcance no puede incluso llegar a la más sencilla de código para trabajar:¿Por qué este simple JSFiddle no funciona?

JSFiddle

function displaymessage() { 
    alert("Hello World!"); 
} 
<form> 
    <input type="button" value="Click me!" onclick="displaymessage()" /> 
</form> 

<p>By pressing the button above, a function will be called. The function will alert a message.</p> 

cuadro El alert no aparece en el jsFiddle.

+1

"no funcionó" no es una descripción del problema. –

+0

Posible duplicado de [El ejemplo simple no funciona en JSFiddle] (http://stackoverflow.com/questions/5431351/simple-example-doesnt-work-on-jsfiddle) – Xufox

+0

@ thomasf1: Cambie su respuesta aceptada al anterior y completo https://stackoverflow.com/a/7043684/295783 – mplungjan

Respuesta

0

http://jsfiddle.net/praveen_prasad/XNJxT/14/

Js violín así que algo como esto a lo que escriba

window.addEvent('load',function(){ 

//Your code 


}); 

enter image description here

+5

No entiendo esta respuesta. ¿Es esta una explicación? Una solución ? –

+0

Esto no funciona – Dan

5

Necesita tomar su function out of the onLoad/onReady de lo contrario se coloca dentro de otro ámbito y su botón no puede acceder a la función. En su caso es necesario utilizar Sin envoltura (cabeza)

el código generado es similar al siguiente:

Ext.onReady(function() { 
    function displaymessage() 
    { 
     alert("Hello World!"); 
    } 
}); 
20

Seleccione No wrap - in <head> en el menú desplegable “Tipo de carga” en la configuración de JavaScript.

Screenshot of the dropdown mentioned above

+0

¡Gracias! Estaba seguro de que me faltaba algo. ¡Estúpido yo! – thomasf1

+2

Ok, ahora funciona. Pero, ¿qué significa exactamente * sin envoltura (cabeza) *? ¿Qué está haciendo o no haciendo? – erik

+1

Esta debería ser la respuesta aceptada ... – Xufox

4

Cambiar el código para funcionar "sin envoltura (cabeza)" en lugar de "onDomReady". Su función no es visible para su marcado como está.

-1

Lo sentimos, pero ... es mucho más simple que lo que se propone ...

Si desea llamar a una función js con el atributo "onclick", coloque su código javascrit directamente en la cabeza, no necesita domready o similar s.

En segundo lugar, debe incluir "javascript:" antes del nombre de la función.

Ver: http://jsfiddle.net/XNJxT/1838/

<input type="button" value="Click me!" onclick="javascript:displaymessage()" /> 
+2

Como se indicó [en esta bella respuesta] (http://stackoverflow.com/a/11348403/1908115) no se recomienda 'javascript:' (mala práctica). – erik

Cuestiones relacionadas