首页 > 技术文章 > 关于js解析的一点小问题

riversHahaha 2016-09-27 20:02 原文

先来看一下下面的一段代码有什么问题?

<html>
<head>
<script src="./jquery.min.js"></script>

</head>
<body>
<div id="test"></div>
<script>
var str = '<script src="./test.js"></script>';
$("#test").append(str);

</script>

</body>
</html>

 

 

在谷歌(v53)和ff(v48)中都在var str ....这一句报错了。

为毛?因为<script>和str定义中包住的script匹配了,没想到你是这样的匹配。

再深入下去就是浏览器内核的解释问题了。所以暂时打住。

如果把这个script放到其他js文件中引用则不会有问题(这不废话吗)。。。

或者做一下转义:

var str = '<script src="./test.js"><\/script>';

 

顺带一提的就是,上面这种动态插入的js在chrome的console的source中是看不到的,例如我上面插入的test.js(是我打开方式不对?)

要测试上述代码需放在在服务器下,随便弄个python,node也是分分钟起服务的啦。

为什么要放服务器下?因为动态插入的xml其实是用ajax请求回来的,所以看到有些js请求奇奇怪的,

例如test.js?_=1474977450655,后面带一串时间戳,九成(成数明显是吹的,你也当真啊?)可以认为它是ajax请求回来的。

 

此处必须加一个:完。

推荐阅读