.js文件中的经典asp代码

时间:2014-11-18 16:01:31

标签: javascript asp-classic

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

<% 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文件就无法解析服务器端代码。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

.js文件需要完全写在客户端JS中。里面的东西&lt; %%&gt;是服务器端VBScript。作为外部javascript文件,它没用,但你可以将它用作服务器端包含在.asp页面中,即

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

在这种情况下,包含文件的扩展并不重要,因为服务器会将其视为它所呈现的页面的一部分。然而,它也被认为是良好的做法,也为.asp扩展名提供包含文件。

答案 1 :(得分:0)

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

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

那么.asp页面的第一行通常是个好主意:

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