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 回答