una - ¿Hay un eco php/impresión equivalente en javascript
print data javascript (9)
l(''output text example'')
después de definir una vez
l=console.log
Me parece bien para una rápida depuración de JS en la consola del navegador.
Basado en la answer @Lil ''Bits - ¡Gracias!
Digamos que quiero imprimir html desde dentro de una etiqueta de script.
Una fuente como esta
<div>foo</div>
<script>
print(''<div>Print this after the script tag</div>'');
</script>
<div>bar</div>
Debería verse algo así en el navegador después de que se haya ejecutado el script
<div>foo</div>
<script>
print(''<div>Print this after the script tag</div>'');
</script>
<div>Print this after the script tag</div>
<div>bar</div>
Podría escribir mi propio código para este propósito, pero como me parece que es un problema muy simple, supongo que o me he perdido algo o que mi forma de pensar es defectuosa y que la impresión se omite intencionalmente.
Además, algo relacionado: me gustaría saber si un script es (o se puede hacer) consciente de las etiquetas de script que lo rodean. Con esta información, sería mucho más fácil encontrar la posición para el código html impreso que se va a inyectar, suponiendo que no esté muy desanimado.
Para aclarar: no necesito que escriba una función de impresión para mí. Solo necesito saber si existe un método nativo para lograrlo y lo he perdido o, alternativamente, la razón por la que no debería hacerse.
EDITAR Me di cuenta de que no había pensado bien la pregunta.
Aclaré mis datos y ahora casi todo parece estar funcionando. Debería haber mencionado originalmente que la función de impresión era necesaria dentro de las plantillas; estoy trabajando en un experimento de motor de plantillas. Me las arreglé para resolverlo separando los scripts del html simple y concatenando los scripts html divididos con la salida del script.
Mientras escribía el código, noté que todo no iría tan bien debido a la naturaleza asíncrona de js. Supongo que esperaba poder hacer cualquier tipo de magia js en plantillas, al igual que pude en PHP. Parece que realmente admitir código asíncrono de manera infalible dentro de las plantillas requerirá un poco más de reflexión.
Desde la página de w3school en la salida de JavaScript ,
JavaScript puede "mostrar" datos de diferentes maneras:
Escribir en un cuadro de alerta, usando window.alert ().
Escribiendo en la salida HTML usando document.write ().
Escribir en un elemento HTML, usando innerHTML.
Escribiendo en la consola del navegador, utilizando console.log ().
Necesitas usar document.write()
<div>foo</div>
<script>
document.write(''<div>Print this after the script tag</div>'');
</script>
<div>bar</div>
Tenga en cuenta que esto solo funcionará si está en el proceso de escribir el documento. Una vez que se haya procesado el documento, llamar a document.write()
borrará el documento y comenzará a escribir uno nuevo. Por favor, consulte otras respuestas proporcionadas a esta pregunta si este es su caso de uso.
Puede usar document.write
o incluso console.write
(esto es bueno para la depuración).
Pero su mejor apuesta y le da más control es usar DOM para actualizar la página.
Puede usar document.write ; sin embargo, no es una buena práctica, puede borrar toda la página dependiendo de cuándo se está ejecutando.
Puedes usar Element.innerHtml
esta manera:
<div>foo</div>
<span id="insertHere"></span>
<div>bar</div>
<script>
var el = document.getElementById(''insertHere'');
el.innerHTML = ''<div>Print this after the script tag</div>'';
</script>
Puedes usar
function echo(content) {
var e = document.createElement("p");
e.innerHTML = content;
document.currentScript.parentElement.replaceChild(document.currentScript, e);
}
que reemplazará la secuencia de comandos en ejecución que llamó a la función echo con el texto en el argumento de contenido.
esta es otra manera
<html>
<head>
<title>Echo</title>
<style type="text/css">
#result{
border: 1px solid #000000;
min-height: 250px;
max-height: 100%;
padding: 5px;
font-family: sans-serif;
font-size: 12px;
}
</style>
<script type="text/javascript" lang="ja">
function start(){
function echo(text){
lastResultAreaText = document.getElementById(''result'').innerHTML;
resultArea = document.getElementById(''result'');
if(lastResultAreaText==""){
resultArea.innerHTML=text;
}
else{
resultArea.innerHTML=lastResultAreaText+"</br>"+text;
}
}
echo("Hello World!");
}
</script>
</head>
<body onload="start()">
<pre id="result"></pre>
</body>
// usage: log(''inside coolFunc'',this,arguments);
// http://paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/
window.log = function(){
log.history = log.history || []; // store logs to an array for reference
log.history.push(arguments);
if(this.console){
console.log( Array.prototype.slice.call(arguments) );
}
};
El uso de window.log le permitirá realizar la misma acción que console.log, pero comprueba si el navegador que está usando tiene la capacidad de usar console.log primero, para no tener errores por razones de compatibilidad (IE 6, etc.) .).
$(''element'').html(''<h1>TEXT TO INSERT</h1>'');
o
$(''element'').text(''TEXT TO INSERT'');