我发现了一些我不确定完全理解的旧代码。下面是一个仅包含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。
答案 0 :(得分:5)
我第一次看到类似的东西,但你是对的,这背后的原因是让文件由asp.net引擎处理并运行它作为任何其他aspx页面,让他有机会使用服务器用于构建js文件的侧码。
如果这是文件中的所有代码,似乎唯一的目的是设置字符编码(CodePage="65001"
和内容类型(Response.ContentType="text/plain"
)。这没有多大意义你可以想象。
答案 1 :(得分:3)
<hack>
要获得智能感知,您可以将代码包装在<script> ... </script>
块中,然后在保存之前将其删除。</hack>
这可能是由一个不想,不能或没有时间编写面向对象的JavaScript的开发人员创建的。通过配置对象封装逻辑和配置将允许您从外部变量依赖项中解除代码(例如var foo = <%= SomeServerSideVariable %>
)。