0

在某些计算机上,当客户端打开特定的 html 页面时,客户端的部分 vbscript 代码会被连字符破坏。我看到该页面上的 vbscript 代码由包含在脚本开始和结束标记中的一个巨大的代码部分组成。我决定把它分成小部分,看起来更好,但是当我把它分成 10 个部分时,其中两个部分(部分表示开始和结束标记之间的代码)仍然被丢弃(这意味着整个部分代码被替换为连字符附有 html 开始和结束备注标志:其中一个部分不是那么大(可能 100 行),肯定还有其他更大的部分没有损坏。我无法在除了两个或任何计算机上重建问题三个客户,他们的耐心是一种稀有资源(我已经使用过)。所以,没有机动空间,我应该将它们分成更多部分并希望这会有所帮助吗?还是另一个问题?

4

2 回答 2

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>

请注意,脚本中的 -- 运算符破坏了注释。如果脚本标签没有损坏,那么这不是问题。浏览器不会把脚本里面的评论当成真正的评论,所以它坏了也没关系。

于 2009-09-13T08:30:49.910 回答
0

我发现了问题所在。互联网提供商提供的防病毒软件决定在 vbscript 代码出现“可疑”时对其进行中和。因此,例如,如果 vbscript 包含一个名为 - swFileExists 的变量,整个 vbscript 段就会变成一堆友好的、无风险的连字符。

于 2010-02-04T15:32:26.130 回答