控制台报错 Uncaught SyntaxError: Unexpected token ILLEGAL 囧啊

控制台报错 Uncaught SyntaxError: Unexpected token ILLEGAL 囧啊
不知道是不是单引号双引号的问题,转义字符试了也不行。。。不知道有没有加错。。。

<script type="text/javascript" > 

document.write( "<script type='text/javascript' src='/js/test-index.js?v= "+Math.random()+"'></script>" ); 

</script>

不知道是哪里出错了,求解答。感谢~

阅读 10k
1 个回答

<script>找到了你字符串中的"</script>"做了闭合,把最后的写成这样"<\/script>"

document.write( "<script type='text/javascript' src='/js/test-index.js?v= "+Math.random()+"'><\/script>" ); 

或者这样:

document.write( "<script type='text/javascript' src='/js/test-index.js?v= "+Math.random()+"'></scr" + "ipt>" ); 

补充:

浏览器在执行嵌入脚本时,碰到script标签,先做的事情是提取里面的脚本(比如用正则),提取的时候就是找最近能闭合的结束标签,即从开始标签起往后找到第一个能匹配上(等于)</script>的字符串。这个阶段你写的脚本没有执行,只是被浏览器当做字符串在查找,结果就找到了write参数里面的</script>。所以我们要做的就是不出现这个字符串就好了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题