为什么注释会影响我的文件的逻辑
Why do comments affect the logic of my file?
编辑:
在这里,它显示这是一个评论。在我的IDE中,它将其显示为代码。太奇怪了(代码集#2):
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="bootstrap-3.3.2-dist/js/bootstrap.min.js"></script>
我有两个档案。一个有评论,一个没有。第一组代码功能完美。第二组代码告诉我JavaScript控制台中的Uncaught ReferenceError: $ is not defined
,并且不调用警报。为什么这些评论会影响我的剧本?
代码集#1
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="bootstrap-3.3.2-dist/js/bootstrap.min.js"></script>
</head>
<body>
<script>
$(function () {
alert("JQUERY!");
});
</script>
</body>
</html>
代码集#2
<!DOCTYPE html>
<html lang="en">
<head>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="bootstrap-3.3.2-dist/js/bootstrap.min.js"></script>
<![endif]-->
</head>
<body>
<script>
$(function () {
alert("JQUERY!");
});
</script>
</body>
</html>
这些不是普通注释,而是条件注释。请参阅:http://www.quirksmode.org/css/condcom.html
上面的注释注释了所有javascript都包含的注释,因此它们不会被加载,除非在低于版本9的Internet Explorer中。
您会收到错误消息,因为jquery没有加载(它在HTML注释中)。如果您使用例如IE8,则不会出现错误。
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="bootstrap-3.3.2-dist/js/bootstrap.min.js"></script>
<![endif]-->
if构造有用于IE的条件注释。
只有在使用版本号大于9的IE时,才会呈现脚本标记。其他所有浏览器都会将整个部分视为一条注释,而不包含任何javascript。
您的文件期望加载jQuery。似乎您注释掉了jQuery脚本,必须包含jQuery脚本。未注释:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
浏览器不会运行它,对吗?它只会在任何情况下由服务器流式传输,并由客户端下载。
它应该没有任何区别,只要你没有太多字符
尽管动态页面是在服务器端生成的,但您可能必须使用服务器端注释,例如:<%-comment-->或{%comment%}
<!--[if lt IE 9]>
&<![endif]-->
是IE的条件注释。其他浏览器会将其作为注释读取。如果您使用的IE版本晚于9,则会加载这些脚本,这可能会导致与其他脚本发生冲突。
- 我的外部js文件无法加载
- 如何使用php文件中的GET来获取我在.js文件中声明的变量
- 如何检查Json文件更新,如果更新了,则用更新的数据刷新我的页面
- MVC正在忽略我的Javascript文件
- 为什么不't我的ruby代码与javascript文件一起插入
- 清单文件中的update_url禁用了我的chrome扩展
- 我可以访问量角器配置文件中的参数吗
- 无法在我的JSON文件中发布数据
- 为什么我的get-requesttoserver.js返回离子云9上的实际文件
- 如何使用webpack将全局JS文件包含到我的React项目中
- 我的组件的Emberjs特定的SCSS文件
- 尝试使用Node.js动态路由从IMDB中抓取电影内容.但是在我的output.json文件中没有定义
- 我如何知道js文件之间的javascript应用程序代码流
- 我尝试使用我的本地js文件来获取远程IP数据,但它不起作用
- 如何在PHP中使用url保护我的图像和文件夹免受直接访问
- 为什么当我在带有锚点的页面之间移动时,Rails不重新加载我的javascript文件
- 如何使用gulp-inject将文件的内容插入到我的index.html中
- 点击功能无法处理我的所有文件
- 我可以通过点击html文件中的按钮来记录我的屏幕/网页吗
- 我的代码在<脚本>标记,但没有'不能在外部文件中工作