打破你的字符串從它的最內層嵌套開始,每次考慮它將被解釋的位置以及它如何被編碼。
<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