在 JavaScript 代码周围使用 HTML 注释标签是否仍然相关?
我是说
<html>
<body>
<script type="text/javascript">
//<!--
document.write("Hello World!");
//-->
</script>
</body>
</html>
在 JavaScript 代码周围使用 HTML 注释标签是否仍然相关?
我是说
<html>
<body>
<script type="text/javascript">
//<!--
document.write("Hello World!");
//-->
</script>
</body>
</html>
HTML 注释,即。<!-- -->
,不再需要。它们旨在允许不理解<script>
标签的浏览器优雅地降级。这些浏览器,例如。Netscape 1.x 不再存在于野外。所以在你的脚本标签中放置 HTML 注释真的没有意义了。
如果您希望 HTML 验证为 XHTML 或 XML,您可能希望使用注释掉的 CDATA 标记。
<script type="text/javascript">
//<![CDATA[
document.write("Hello World!");
//]]>
</script>
这样做的原因是为了确保你<
,>
,&
,"
和'
这是你的JavaScript代码部分不会有被编码为<
,>
,&
,"
和'
分别。
不是真的,除非你的目标是 20 岁的浏览器。
最好一起避免在正文中使用 JavaScript。它使更新更容易,避免了评论的需要,并强制您为非 JavaScript 启用的用户以及启用 JavaScript 的用户制定计划。
不是你这样做的方式,不。
<!-- 在 JavaScript 中的处理方式与 // 相同,因此您的代码应如下所示:
<script type="text/javascript">
<!--
document.write("Hello World!");
//-->
</script>
..与你的不同之处在于,一个罕见的、可能不理解脚本标签的晦涩浏览器会将开头 // 打印到屏幕上,这违背了将评论标签放在首位的目的。
如果您好奇,这里有更多信息:http : //www.javascripter.net/faq/comments.htm
然而,最终即使是默认不支持 javascript 的超级晦涩的浏览器(如 HTMLLayout 浏览器或 Netsurf)也知道最好不要在脚本标签之间呈现文本,所以不,它无论如何都不再相关。然而,你可能关心的所有浏览器都理解 <!-- 语法,所以没有必要疯狂地担心从你已经拥有的东西中删除它,因为它是有效的 js,记住下次不要添加它。
即使在现代浏览器中,它也很有用。我今天实际上遇到了这个问题,正是因为我想避免在我的 html 中嵌入 javascript。
我有一个在 上提供的 html 页面http://host/variable_app_name/pagename
,其中variable_app_name
可以有很多值(你知道,变量)。如果它想访问静态文件,它必须使用类似 的 url http://host/static/variable_app_name/filename
,所以我不能在没有首先查看浏览器的位置以找到variable_app_name
.
要链接到主要的 javascript 文件,我执行以下操作:
<script type="text/javascript" >
var variable_app_name = window.location.pathname.split('/')[1];
document.write('<script type="text/javascript" src="/static/'+variable_app_name+'/pagename.js"></script>\n');
</script>
上面的代码即使在最新版本的 Chrome 中也会爆炸,因为 script 标签将在 javascript 字符串的中间终止,并且字符串的其余部分将被解释为 html,如下所示:
<script type="text/javascript" >
var variable_app_name = window.location.pathname.split('/')[1];
document.write('<script type="text/javascript" src="/static/'+variable_app_name+'/pagename.js">
</script>
\n');
</script>
有很多方法可以解决这个问题,但我喜欢使用 html 注释。
带有 html 注释:
<script type="text/javascript" >
<!--
var variable_app_name = window.location.pathname.split('/')[1];
document.write('<script type="text/javascript" src="/static/'+variable_app_name+'/pagename.js"></script>\n');
-->
</script>
分解 javascript 字符串:
<script type="text/javascript" >
var variable_app_name = window.location.pathname.split('/')[1];
document.write('<script type="text/javascript" src="/static/'+variable_app_name+'/pagename.js"></scr'+'ipt>\n');
</script>
创建并附加脚本标签而不是使用 document.write:
<script type="text/javascript" >
var variable_app_name = window.location.pathname.split('/')[1];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = '/static/'+variable_app_name+'/pagename.js';
document.head.appendChild(script);
</script>
我喜欢使用 html 注释,因为它是一个简洁的更改,不需要复制或考虑每个链接文件。