我有一些我应该修改的旧代码,似乎有人在.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文件,它就不能解析服务器端的代码。任何帮助都将不胜感激。
发布于 2014-11-19 03:34:13
一个.js文件需要完全用客户端JS编写。<% %>中的东西是服务器端的VBScript。作为一个外部javascript文件,它是无用的,但你可以使用它作为一个服务器端包含在一个.asp页面,即
<script type="text/javascript">
<!--#include file ="yourfilename.js"-->
</script>在这种情况下,包含文件的扩展名无关紧要,因为服务器会将其视为正在呈现的页面的一部分。但是,也可以给包含文件提供.asp扩展名,这是很好的实践。
发布于 2014-11-20 23:19:46
如果愿意,您可以为该.js文件指定一个.asp扩展名,并像这样包含它,以避免必须使用服务器端包含:
<script src="../Include/YourFileName.asp?x=1&y=2" type="text/javascript"></script>因此,.asp页面的第一行通常是这样的:
<%Response.ContentType="text/javascript"%>https://stackoverflow.com/questions/26998592
复制相似问题