Imprimir Var en JsFiddle


200

¿Cómo imprimiría algo en la pantalla de resultados en JsFiddle desde mi JavaScript? No puedo usar document.write(), tampoco lo permite print.

¿Qué debo usar?



@GaurangJadia Eso es útil, debe agregarlo como respuesta (el único problema es console.log()aceptar argumentos de manera diferente a su función personalizada).
IQAndreas

Esto es esencialmente una necesidad de console.log () ...
Evan Carroll


Hoy en día jsfiddle permite el uso de document.write ()
Rubén

Respuestas:


499

Para poder ver la salida desde console.log()JSFiddle, vaya a Recursos externos en el panel del lado izquierdo y agregue el siguiente enlace para Firebug:

https://getfirebug.com/firebug-lite-debug.js

Ejemplo del resultado después de agregar firebug-lite-debug.js


10
Fabulosa respuesta Básicamente divide el panel de salida en dos paneles.
Jack

2
¡Exactamente lo que estaba buscando!
Pratyush

44
Desearía que JSFiddle hiciera esto por defecto, o al menos tenga una casilla de verificación muy obvia para habilitarlo con un solo clic.
Lily Finley

55
¡la consola solo aparece después de haber ejecutado el código por primera vez! gran respuesta por cierto!
Peter Piper

44
¿Hay algo así para Chrome? En realidad, JSFiddle debería admitir algo como esto fuera de la caja, sería bastante útil.
Harshay Buradkar

67

Tengo una plantilla para este propósito ; Aquí está el código que uso:

HTML

<pre id="output"></pre>

JavaScript

function out()
{
    var args = Array.prototype.slice.call(arguments, 0);
    document.getElementById('output').innerHTML += args.join(" ") + "\n";
}

Uso de muestra (JavaScript)

out("Hello world!");
out("Your lottery numbers are:", Math.random(), 999, Math.PI);
out("Today is", new Date());

Y para imprimir objetos de impresión ... out (JSON.stringify (myObject, null, 2));
Andrew Lank

Tenga en cuenta que esto tendrá problemas con los caracteres '<' o '>' sin escape, y que también vomitará cuando los valores de los argumentos estén <indefinidos>. Esto puede no ser un problema para su caso de uso, sino algo a tener en cuenta al reemplazar las llamadas a console.log ().
Steve Hollasch

Versión mejorada: utiliza en innerTextlugar de innerHTMLy envía el registro a la consola original también: function newLog(oldLog) { return function() { var args = Array.prototype.slice.call(arguments, 0); document.getElementById('console-log').innerText += args.join(" ") + "\n"; oldLog.apply(this, args) } } console.log = newLog(console.log) console.error = newLog(console.error) ejemplo de
JSFiddle

De alguna manera, esto no me muestra nada cuando intento en jsfiddle. :(
Suma

@Suma Hm, puede haber un error de JavaScript. Funciona bien en mi máquina, pero es posible que esté utilizando una versión diferente. Intente abrir la consola de depuración y busque errores (asegúrese de presionar el botón Ejecutar en la esquina superior izquierda al hacerlo)
IQAndreas

39

Tratar:

document.getElementById('element').innerHTML = ...;

Violín: http://jsfiddle.net/HKhw8/


2
Puede usarlo document.getElementById('element').innerHTML += [stuff here] + "<br/>";si desea tener varias líneas y agregar información a la página, en lugar de simplemente reemplazar la información anterior.
IQAndreas

27

Puede que no hagas lo que haces, pero puedes escribir

console.log(string)

E imprimirá la cadena en la consola de su navegador . En cromo, presione CTRL+ SHIFT+ Jpara abrir la consola.


3
O puede usar CTRL+ SHIFT+ Ksi desea que la consola esté acoplada en la parte inferior de la página, en lugar de flotar en una ventana separada.
IQAndreas


7

Ahora jsfiddle puede hacerlo desde cero. Simplemente vaya a Javascrpt -> Marcos y extensiones -> Jquery (borde) y marque la casilla de verificación Firebug lite


Pero pierdo el resaltado de sintaxis con esto :(
Chintan Pathak


4

Con ES6 los trucos podrían ser

function say(...args)
{ 
    document.querySelector('#out').innerHTML += args.join("</br>");
}
say("hi","john");

Agregar solo

 <span id="out"></span>

en HTML



0

Solo para agregar algo que podría ser útil para algunas personas ...

Si agrega la consola del depurador como se muestra arriba, puede acceder al alcance ejecutando esto:

scope = angular.element (document.querySelector ('[ng-controller = MyCtrl]')). scope ();

Encuentro inspeccionar el alcance directamente más fácil que console.log, alert (), etc.


¿tiene un ejemplo de uso, no lo sigo.
wide_eyed_pupil

No tengo idea de por qué respondí con una respuesta angular, hilo equivocado, supongo.
Neph

0

Si está utilizando JSfiddle, puede usar esta biblioteca: https://github.com/IonicaBizau/console.js

Agregue un rawgit de la lib a sus recursos jsfiddle: https://cdn.rawgit.com/IonicaBizau/console.js/0ee8fcc4ea802247c5a7a8e3c6530ede8ade308b/lib/console.min.js

Luego puede agregar esto en el HTML:
<pre class="console"></pre>

Inicialice la consola en su JS:
ConsoleJS.init({selector: "pre.console"});

Ejemplo de uso: Véalo en jsfiddle

ConsoleJS.init({selector: "pre.console"});

let b;

console.log('hello world');
console.log([{'a':10,'b':44}]);
console.log(typeof [1,2,3,4]);
console.log(50 +67);
console.log(b);

-4

Usa la alert()función:

alert(variable name);
alert("Hello World");

1
alerta nunca es una buena herramienta de depuración - no muestra los objetos, las interrupciones comportamiento del código, etc, etc
Muers
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.