我正在尝试打开一个新窗口并编写一些元素和javascript标记。
代码看起来像,
var OpenWindow = window.open("ImagePreview.html", "mywindow","height=768,width=1024");
OpenWindow.document.write("<style type='text/css'>.normal{zoom:20%; -moz-transform:scale(0.2); cursor:pointer;}.notZoomed{zoom:20%; -moz-transform:scale(0.2); cursor:pointer;}.zoomed{zoom:100%; -moz-transform:scale(1); cursor:pointer;}</style>");
OpenWindow.document.write("<script type='text/javascript'>$(function(){$('#imageFullView').data('zoomed', false);$('#imageFullView').click(function(){$('#imageFullView').removeClass('normal');if($('#imageFullView').data('zoomed')){$('#imageFullView').removeClass('zoomed');$('#imageFullView').addClass('notZoomed');$('#imageFullView').data('zoomed', false);}else{$('#imageFullView').removeClass('notZoomed');$('#imageFullView').addClass('zoomed');$('#imageFullView').data('zoomed', true);}})");
OpenWindow.document.write("<img id='imageFullView' class='normal' src='" + data.previewImage + "' alt='img'/>");
OpenWindow.document.write("<br>");
OpenWindow.document.write("<center><a href='javascript:self.close()' target='_self'>Close</a></center>");
但是在尝试使用代码编写javascript标记时代码中断了。 如果我删除该行代码而不会中断。
这不是将javascript代码添加到网页window.open()
的正确方法吗?
如何使用jquery做到这一点?
谢谢!
答案 0 :(得分:4)
我的代码中没有关闭脚本标记。
你需要分解脚本标签,这样就不会弄乱页面的解析器。
...write("<script>...</sc"+"ript>");
为什么要写到新窗口?为什么不直接传递所需的信息作为查询字符串参数,并让新页面构建文档。
答案 1 :(得分:1)
您忘记了脚本的结束标记。
您可能必须分解结束脚本标记,例如将其放在单独的字符串中,这样它就不会结束编写脚本的脚本:...</scr'+'ipt>...
答案 2 :(得分:0)
假设您正在编写HTML,您有两种选择。
如果您使用选项2,则将</something>
的任何实例更改为<\/something>
。
在JavaScript字符串中,这两个结构是相同的。
在HTML脚本元素中,</something>
将终止脚本元素。由于浏览器往往不能正确实现HTML 4,因此通常只有</script>
才能在实践中执行此操作,但为了符合标准(并且能够将Validator用作标准符合性),您仍应对所有元素执行此操作有用的工具)。
有些人会建议您将"</script>
更改为"<" + "/script>"
。不要这样做。它更难以阅读,更难以打字,并且(在微优化领域)下载更多字节并且执行效率更低(JS中的字符串连接相对较慢)。
在您编写XHTML时,您可以处理CDATA and Appendix C的精彩世界。