I'm not sure what is wrong with my code, but when I try and add actorWin.document.write('<script type=\"text/javascript\"><\/script>')
everything gets screwed up. Without this line, the code works fine.
<!DOCTYPE html>
<meta charset="utf-8">
<title>create a window</title>
<script type='text/javascript'>
function Movie(title, actor) {
this.title = title;
this.actor= actor;
}
</script>
</head>
<body>
<script type='text/javascript'>
var documentary = new Movie('http://www.imdb.com/title/tt0358456/?ref_=fn_al_tt_2','http://en.wikipedia.org/wiki/Joaquin_Phoenix');
var movieWin = new Object();
var actorWin = new Object();
newWin=window.open('','Win','width=300,height=200,top=100,left=600');
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\");" +
"} <\/script>');" +
"}" +
"<\/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>");
</script>
</body>
</html>
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>");
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>')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With