【问题标题】:classic asp code in .js file.js 文件中的经典 asp 代码
【发布时间】:2014-11-20 23:24:00
【问题描述】:

我有一些我应该修改的旧代码,似乎有人在 .js 文件中包含了经典的 asp 代码,以便根据一些会话变量值呈现 javascript 函数,但我收到“语法错误” ' 渲染页面时,我试图解决这个问题。代码如下;

<% if Session("Money_Guide_Pro_Application_Granted") = "Y" then %>
function OpenMGP() 
{
    var oNewWindow = "MGP";
    window.open("https://" + "<%=Request.ServerVariables("SERVER_NAME")%>" + "/applications/commlink/MGPRO/MGProRepSelect.aspx",oNewWindow,"height=600,width=667,status=no,toolbar=no,scrollbars=yes,menubar=yes,resizable=yes,location=no");
}
<% else %>
function OpenMGP() 
{
    var oNewWindow = "MGP";
    window.open("https://" + "<%=Request.ServerVariables("SERVER_NAME")%>" + "/backoffice/Planning/MGPNoSub.asp", oNewWindow,"height=400,width=500,status=no,toolbar=no,scrollbars=yes,menubar=yes,resizable=yes,location=no");
}
<% end if %>

基本上在打开窗口时使用不同的 url,具体取决于设置的用户权限。我认为这是不可能的,因为经典的 asp 是服务器端,所有 .js 都是客户端,所以我认为一旦客户端点击这个 .js 文件,它就无法解析服务器端代码。任何帮助将不胜感激。

【问题讨论】:

  • 一个 javascript 语法错误,而不是一个经典的 asp 服务器语法错误?渲染出来的 JS 在浏览器中是什么样子的?
  • SCRIPT1002:语法错误,源自字符 1; 所以我不完全确定它是 .js 还是 asp,我认为这只是因为 .js 文件中的
  • 我猜 .JS 文件没有被传递给 ASP 处理程序。通过将 X.JS 文件重命名为 X.JS.ASP 进行验证(浏览器不卡扩展名)

标签: javascript asp-classic


【解决方案1】:

.js 文件需要完全用客户端 JS 编写。 里面的东西是服务器端的VBScript。作为一个外部 javascript 文件,它没有用,但您可以将它用作 .asp 页面中的服务器端包含,即

<script type="text/javascript">
<!--#include file ="yourfilename.js"-->
</script>

在这种情况下,包含文件的扩展名无关紧要,因为服务器会将它视为它正在呈现的页面的一部分。但是,将 .asp 扩展名也赋予包含文件被认为是一种很好的做法。

【讨论】:

    【解决方案2】:

    如果你愿意,你可以给那个 .js 文件一个 .asp 扩展名,并像这样包含它以避免必须使用服务器端包含:

    <script src="../Include/YourFileName.asp?x=1&y=2" type="text/javascript"></script>
    

    .asp 页面的第一行通常是这样的:

    <%Response.ContentType="text/javascript"%>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多