打破你的字符串从它的最内层嵌套开始,每次考虑它将被解释的位置以及它如何被编码。
<script src='http://code.jquery.com/jquery-1.10.2.min.js'></script>
这HTML将是一个字符串内,逃避报价和反斜杠和升了一级的嵌套
window.jQuery || document.write("<script src=\'http://code.jquery.com/jquery-1.10.2.min.js\'></script>");
这脚本将里面HTML,转义标签 and go up al埃维尔在嵌套
<script type="text/javascript">window.jQuery || document.write("<"+"script src=\'http://code.jquery.com/jquery-1.10.2.min.js\'><"+"/script>");</script>
这HTML将是一个字符串内,逃避报价和反斜杠和升了一级的嵌套
document.write('<script type=\"text/javascript\">window.jQuery || document.write(\"<\"+\"script src=\\\'http://code.jquery.com/jquery-1.10.2.min.js\\\'><\"+\"/script>\");</script>');
这将被载入作为外部脚本,所以我们完成了。
我选择使用"<"+"tag>..<"+"/tag>"
样式来打破标签,因为我觉得它更容易逃脱。
是的,不要使用'document.write()'。改用DOM操作。 – Cerbrus
@Cerbrus你无法将脚本执行到DOM –
@YuriyGalanter:_“无法将可执行脚本导入DOM”_ - >不能做什么? “跑”? “插”?无论哪种方式,你都不需要。而不是'document.write',只需检查jQuery。如果jQuery不存在,则使用DOM操作来加载脚本。 – Cerbrus