一部のコンピューターでは、クライアントが特定のhtmlページを開くと、クライアント側のvbscriptコードの一部がハイフンで破棄されます。そのページのvbscriptコードは、スクリプトの開始タグと終了タグで囲まれた1つの巨大なコードセクションで構成されていることがわかりました。私はそれを小さなセクションに断片化することに決めました、そしてそれはより良いように見えました、しかし私がそれを10のセクションに断片化したとき、2つのセクション(セクションは開始タグと終了タグの間のコードを意味します)はまだゴミ箱に入れられました(つまりセクションコード全体がハイフンに置き換えられましたhtmlの開始と終了の注釈記号で囲まれています:セクションの1つはそれほど大きくありませんでした(おそらく100行)、確かに破損していない他の大きなセクションがありました.2つまたは3人のクライアント、そして彼らの忍耐力は(私がすでに使用した)まれなリソースです。したがって、スペースを操作せずに、それらをもう少し断片化して、これが役立つことを願っていますか?それとも別の問題ですか?
2 に答える
スクリプト タグと html コメントについて混乱があるようです。クライアント側の VBScript タグは次のようになります。
<script type="text/vbscript"> ... </script>
または、古い (非推奨の) language 属性を使用します。
<script language="VBScript"> ... </script>
これは、クライアントに到達する唯一の種類の VBScript です。もちろん、それを.asp
ページに配置した場合に限ります。ページに配置.html
すると、サーバー上のスクリプト エンジンを介して実行されることなく、そのままクライアントに送信されます。
サーバー側の VBScript タグは次のようになります。
<script runat="server"> ... </script>
または短い形式:
<% ... %>
ページに正しいサーバー サイド スクリプト タグがある場合.asp
、内部のコードがクライアントに表示されることはありません。
HTML コメントは次のようになります。
<!-- ... -->
ハイフンは HTML コメントの一部であることに注意してください。最初の 2 つのハイフンはコメント モードをオンにし、最後の 2 つのハイフンはコメント モードをオフにします。コメント内にさらに 2 つのハイフンがある場合、それは壊れており、ページにレンダリングされます。
<!-- This is not -- a comment -->
ただし、ハイフンの別のペアを入れてコメント モードを再度オンにすると、それは有効なコメントになります。
<!-- This is -- -- a comment -->
HTML コメントは、スクリプト タグ内で使用されることがあります。これは、スクリプトをサポートしていないブラウザーではページにコードを表示してはならないという歴史的な理由からです。現在、スクリプトを実行しなくても、すべてのブラウザーが script タグを理解するため、これはもう必要ありません。誰かが 20 年前のブラウザを持っているリスクはかなり低いです。
HTML コメントを含むスクリプト タグがあり、スクリプト タグと HTML コメントの両方が破損している場合、ブラウザに表示される可能性があります。このような:
<scrpt type="text/javascript">
<!--
var i = 1;
i--;
//-->
</script>
スクリプト内の -- 演算子がコメントを分割していることに注意してください。ただし、script タグが壊れていなければ問題ありません。ブラウザーはスクリプト内のコメントを実際のコメントとして扱わないため、壊れていても問題ありません。
何が問題なのかわかりました。インターネット プロバイダーが提供するアンチウイルスは、「疑わしい」と思われる vbscript コードを無力化することを決定しました。そのため、たとえば、vbscript に swFileExists という名前の変数が含まれている場合、vbscript セグメント全体が、わかりやすい安全なハイフンの集まりに変わります。