在某些计算机上,当客户端打开特定的html页面时,客户端的部分vbscript代码会被连字符破坏。我看到该页面上的vbscript代码由脚本开始和结束标记中包含的一个巨大的代码部分组成。 我决定把它分成小部分,看起来更好,但是当我把它分成10个部分时,其中两个部分(部分表示开始和结束标记之间的代码)仍然被删除(意味着整个部分代码被替换为连字符)用html开头和结尾标记括起来: 其中一个部分不是那么大(可能是100行),肯定还有其他更大的部分没有被破坏。 我无法在两个或三个客户端旁边的任何计算机上重建问题,他们的耐心是一种罕见的资源(我已经使用过)。所以,如果没有机动空间,我是否应该将它们分解一些并希望这会有所帮助?还是另一个问题?
答案 0 :(得分:2)
脚本标签和HTML评论似乎有些混乱。客户端VBScript标记如下所示:
<script type="text/vbscript"> ... </script>
或者使用旧的(已弃用的)语言属性:
<script language="VBScript"> ... </script>
这是唯一可以访问客户端的VBScript类型,前提是您将其放在.asp
页面中。如果您将它放在.html
页面中,它将按原样发送给客户端,而不通过服务器上的脚本引擎运行它。
服务器端VBScript标记如下所示:
<script runat="server"> ... </script>
或简短形式:
<% ... %>
如果.asp
页面中有正确的服务器端脚本标记,则客户端将无法看到内部代码。
HTML评论如下所示:
<!-- ... -->
请注意,连字符是HTML注释的一部分。开头的两个连字符打开注释模式,最后的两个连字符关闭注释模式。如果注释中有另外两个连字符,它会被破坏并在页面上呈现:
<!-- This is not -- a comment -->
但是,如果您再插入另一对连字符以再次启用评论模式,那么这是一个有效的评论:
<!-- This is -- -- a comment -->
HTML注释有时在脚本标记内部使用,出于某些历史原因,不支持脚本的浏览器不应在页面上显示代码。现在所有浏览器都理解脚本标记,即使它们不运行脚本,也不再需要这样做了。拥有20年历史浏览器的人的风险非常小。
如果您的脚本标记中包含HTML注释,并且脚本标记和HTML注释都会被破坏,则它可能会显示在浏览器中。像这样:
<scrpt type="text/javascript">
<!--
var i = 1;
i--;
//-->
</script>
请注意,脚本中的 - 运算符正在破坏注释。如果脚本标记没有被破坏,那么它不是问题。浏览器不会将脚本中的注释视为真实注释,因此它不会被破坏。
答案 1 :(得分:0)