I\'m not sure what is wrong with my code, but when I try and add actorWin.document.write(\'
If your embedding javascript in an HTML page the HTML parser when it finds your first script tag will immediately try to find the closing tag. Since your closing script tag is in your document.write you'll find yourself in a pickle.
You can easily just escape the closing forward slash on the tag with a backslash:
document.write("<script>alert('foo')</script>')
To:
document.write("<script>alert('foo')<\/script>')
Just change closing script tag inside other script tag to fool browser.
change :
actorWin.document.write('<script type=\"text/javascript\"><\/script>')
to :
actorWin.document.write('<script type=\"text/javascript\"><\/scr'+'ipt>')
Edit :
Full code :
newWin.document.write(
"<script type='text/javascript'>" +
"function PopUpWindowMovie(url) {" +
"movieWin=window.open(url,'','height=600,width=800,left=400,top=100,scrollbars,status,resizable');" +
"movieWin.focus();}" +
"function PopUpWindowActor(){" +
"actorWin=window.open('','','height=600,width=800,left=400,top=100,scrollbars,status,resizable');" +
"actorWin.focus(); " +
"actorWin.document.write('Joaquin Phoenix is a great actor and a long time vegan.<br />');" +
"actorWin.document.write('<script type=\"text/javascript\">" +
"function test() {" +
"alert(\"here\");" +
"} <\/scr'+'ipt>');" + // <-- I've edited this line
"}" +
"<\/script>");
newWin.document.write("This is a MUST SEE movie: <h1>Earthlings (2005)</h1>");
newWin.document.write("<a href=\"javascript:PopUpWindowMovie('"+documentary.title+"')\">Go to see the movie info</a><br />");
newWin.document.write("<a href=\"javascript:PopUpWindowActor()\">Go to see the lead actor</a>");
but when I try and add actorWin.document.write('</script>') everything gets screwed up
Not sure what's the problem but it may help you
Writing to a document that has already loaded without calling document.open() will automatically perform a document.open call.
About document.open call
If a document exists in the target, this method clears it.
Read more on MDN.
var newWin = window.open('','Win','width=300,height=200,top=100,left=600');
// Then add scripts
var script1 = document.createElement('script');
script1.innerHTML = "function someFunc(){ alert('Hello'); }";
newWin.document.getElementsByTagName('head')[0].appendChild(script1);
var script2 = document.createElement('script');
script2.src = "http://code.jquery.com/jquery-git2.js";
newWin.document.getElementsByTagName('head')[0].appendChild(script2);
This should work. An Example here.