以下练习在我必须使用的内联JavaScript中相当普遍:
<script type="text/javascript">
<!--
// Code goes here
//-->
</script>
Run Code Online (Sandbox Code Playgroud)
我知道关键是要防止与JavaScript不兼容的浏览器呈现源代码,但这仍然是今天最好的做法吗?今天使用的绝大多数浏览器都可以解释JavaScript; 即便是现代移动设备通常也没有问题.
至于'为什么不呢?' 问题:我最近不得不花费几个小时来调试一个问题,其中有人在某些页面深处埋藏的脚本标签末尾的' - >'前面没有'//',这导致了神秘的JavaScript错误.
你是做什么?这仍然被认为是"最佳做法吗?"
Nol*_*rin 113
重要的是,现在,一个特定的浏览器是否支持JavaScript是无关紧要的(显然绝大多数都是这样) - 它是无关紧要的,因为几乎所有人都理解脚本块,这意味着他们知道忽略JavaScript即使他们不能解释它.
Matt Kruse 在他的JavaScript工具箱网站上给出了一个稍微详细的解释,说明为什么不在脚本块中使用HTML注释.
引自该页面:
在javascript(1995)的古代,一些像Netscape 1.0这样的浏览器对脚本标签没有任何支持或了解.因此,当javascript首次发布时,需要一种技术来隐藏旧版浏览器中的代码,这样他们就不会在页面中将其显示为文本.'hack'是在脚本块中使用HTML注释来隐藏代码.
在脚本中使用HTML注释是不好的
// DON'T do this! Code is just representative on how things were done
<script language="javascript">
<!--
// code here
//-->
</script>
Run Code Online (Sandbox Code Playgroud)
目前普遍使用的浏览器都不知道<script>标记,因此不再需要隐藏javascript源代码.事实上,由于以下原因,它可能被认为是有害的:
cha*_*aos 24
我已经不再这样做了.在某些时候你只需要放弃你的NCSA马赛克.
根据W3C建议书,隐藏USER AGENTS的脚本数据非常有用.
引自W3c页面:
在JavaScript中注释脚本JavaScript引擎允许字符串"<!--"
出现在SCRIPT元素的开头,并忽略其他字符直到行结束.JavaScript将"//"解释为开始延伸到当前行末尾的注释.这需要隐藏JavaScript解析器中的字符串" - >".
<SCRIPT type="text/javascript">
<!-- to hide script contents from old browsers
function square(i) {
document.write("The call passed ", i ," to the function.","<BR>")
return i * i
}
document.write("The function returned ",square(5),".")
// end hiding contents from old browsers -->
</SCRIPT>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
36680 次 |
最近记录: |