为什么这段代码使用 JavaScript 的.aspx文件

Why does this code use an .aspx file for JavaScript?

本文关键字:JavaScript aspx 文件 段代码 代码 为什么      更新时间:2023-09-26

我发现了一些我不确定我是否完全理解的旧代码。下面的页面是一个.aspx页面,只包含JavaScript:

<%@ 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 文件?这样做是为了包含代码块吗? 以这种方式使用文件,我什至无法获得智能感知。

我第一次看到这样的东西,但你是对的,这背后的原因是使文件由 asp.net 引擎处理,并像任何其他 aspx 页面一样运行它,让他有机会使用服务器端代码来构建 js 文件。

如果这就是文件中的所有代码,似乎唯一的障碍是设置字符编码(CodePage="65001"和内容类型(Response.ContentType="text/plain")。正如你可以想象的那样,这没有多大意义。

<hack> 要获得智能感知,您可以将代码包装在<script> ... </script>块中,并在保存之前删除它们。</hack>

这可能是由不想、不能或没有时间编写面向对象的 JavaScript 的开发人员创建的。封装逻辑并通过配置对象进行配置将允许您将代码与外部变量依赖项分离(例如 var foo = <%= SomeServerSideVariable %> )。