3

完全に理解できるかどうかわからない古いコードを見つけました。以下は、JavaScriptのみを含む.aspxページです。

<%@ Page Language="C#" EnableSessionState="True" CodePage="65001" uiculture="auto" %>

<%
Response.ContentType = "text/plain";
%>


var csBackgroundColor;

function testfx() {
    csBackgroundColor.setAttribute('disabled', 'disabled');
}

そしてそれはこのように参照されました:

<script type="text/javascript" src="filename.js.aspx"></script>

完全にJavaScriptファイルとしてマークされていないのはなぜですか?コードブロックを含めることができるように、このように行われましたか?このようにファイルを使用すると、IntelliSenseも取得できません。

4

2 に答える 2

5

そのようなものを初めて見たのですが、その通りです。この背後にある理由は、ファイルをasp.netエンジンで処理し、他のaspxページと同じように実行して、サーバー側のコードを使用してjsファイルをビルドします。

それがファイル内のすべてのコードである場合、唯一の目的は文字エンコード(CodePage="65001"およびコンテンツタイプ(Response.ContentType="text/plain")を設定することであったようです。想像できるように、それはあまり意味がありません。

于 2012-06-27T00:26:37.913 に答える
3

<hack>インテリセンスを取得するには、コードを<script> ... </script>ブロックでラップし、保存する前にそれらを削除します。</hack>

これはおそらく、オブジェクト指向のJavaScriptを作成したくない、作成できなかった、または作成する時間がなかった開発者によって作成されました。ロジックをカプセル化し、構成オブジェクトを介して構成すると、外部変数の依存関係からコードを切り離すことができます(例var foo = <%= SomeServerSideVariable %>)。

于 2012-06-27T00:34:01.480 に答える