Tengo un elemento con contenido html codificado como se muestra a continuación.
<div class="hasTooltip"> <html>........... //more html encoded text </div>Cuando hago clic en este elemento, quiero que el contenido se muestre en una nueva ventana y funciona bien.
$('.hasTooltip').click(function() { var win = window.open("", "Title", "toolbar=no"); win.document.body.innerHTML = $(this).html(); });Pero el problema es que la ventana muestra el texto html con valores decodificados pero no el contenido html real con todos los estilos.
Probé el siguiente código pero no tuve suerte ya que no muestra contenido. ¿Algun consejo?
win.document.body.innerHTML = $(this).html().text();El siguiente código debería funcionar.
function unEscape( str ){ str = str.replace(/"/g,'"').replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>') return str; } var h = document.getElementById("hasTooltip").innerHTML; console.log( unEscape(h) ) <div id="hasTooltip"> <html></html> </div>Aquí está tu solución
si no puede ejecutar su código aquí, verifique jsfiddle
https://jsfiddle.net/sq3Ljwnt/
$('.hasTooltip').click(function() { var win = window.open("", "Title", "toolbar=no"); win.document.body.innerHTML = $("textarea").val(); }); textarea{ height:200px; width:100%; border:none !important; background:none; resize: none; } <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> <div class="hasTooltip"> <textarea> <html> <h1> This is test </h1> <p> More HTML ... </p> </html> </textarea> </div>