I have a variable in which a complete html is saved.
$body= $myhtmlpage;
<a onclick="openWin(' <?php echo htmlspecialchars(json_encode($body)) ?>');" href="javascript:void(0);"> Click </a>
and i have this javascript function which display the text in new window.
<script type="text/javascript">
function openWin( str )
{
myWindow=window.open('','','width=400,height=400');
myWindow.document.write(str+"<p>This is 'myWindow'</p>");
myWindow.focus();
}
</script>
When there is simple text in my body, it works fine. but if there is some html then it does not display, I am new to javascript. please tell me how can i prepare my HTML that it should be passed to Javascript html. i tried htmlspecialchars(json_encode($body))
functions but still having problem.
Uncaught SyntaxError: Unexpected identifier
Firstly, you do not need to use
json_encode(), that is just confusing the situation.Secondly, the problem will be that your HTML contains quotes. This will result in a syntax error in the HTML you output, since
htmlspecialchars()does not escape quotes.Use
htmlentities()with theENT_QUOTESflag instead. So change the line to this:Thirdly (although it should probably be firstly since it is the most important point) your approach to this is all wrong. If you’re opening a new window, you should have it load a page from the server and generate the HTML when the window is opened.