执行下面的JS语句,alert("ok")没有弹窗:
$(document.body).append("<script id='initializeDate' type=\"text/javascript\" >$($.date_input.initialize);</script >");alert("ok")
但是分成下面2个语句来执行,alert("ok")却可以弹窗:
$(document.body).append("<script id='initializeDate' type=\"text/javascript\" ></script >"); $("#initializeDate").append("$($.date_input.initialize);");alert("ok");
请问,原因是什麽?
我测试了以上两段代码,全部无法正常执行。
原因是/
是带有特殊含义的字符,用于正则表达式。
这里script
的首尾标签正好配对,字符串中的</script>
中断了代码的运行,你最好为字符串中的/
提供转义,写作\/
,这样两段代码就都可以正常运行了。
浏览器在遇到</script>时,是不会管它是否在字符串中,都会当成是脚本的结束。
所以需要对/进行转义。
<\/script>