【发布时间】:2014-11-14 10:21:27
【问题描述】:
我必须支持使用经典 ASP 和 VBScript 开发的旧 Web 服务器。我在带有 IIS 7.5 的 Windows 7 上运行。
我按照this article 中有关配置 IIS 的所有说明进行操作。 网页加载完毕,但 JS 似乎看不到 VBScript 中的函数。
我有这个代码:
<%@ Language=VBScript %>
<!-- #include file="HebrewMeta_UTF8.jv"-->
<link rel="stylesheet" type="text/css" href="../Class.css">
<html>
<head>
<%
Nm=Request("Nm")
%>
<title>my page</title>
</head>
<script LANGUAGE="javascript">
var Nm = "<%=Nm%>";
function onCheckPro() {
nm = window.navigator.appName;
if ((nm.indexOf("Explorer") == "-1") && (nm.indexOf("Netscape") == "-1")){
alert(" Compatibility שינוי הגדרות ");
window.open("http://www.comax.co.il/InstallTools/compatibility-view.reg");
//alert("ניתן להפעיל באקספלורר בלבד");
//return;
}
document.all.fr.src = "CheckLogInPro.asp?Kod=" + escape(Kod.value) + "&Pass=" + escape(Pass.value) + "&Date=" + vbDate();
}
</script>
<script LANGUAGE="vbscript">
function vbDate()
vbDate=Cstr(Day(Date()))+"/"+Cstr(Month(Date()))+"/"+Cstr(Year(Date()))+" "+Cstr(hour(Now()))+":"+Cstr(Minute(Now()))+":"+Cstr(Second(Now()))
end function
</script>
我不断收到“'vbDate' 未定义”。
站点 ASP 的脚本语言设置为 VBScript。
【问题讨论】:
-
您在那里编写的是“客户端”VBScript,因此客户端(您的 Internet 浏览器)需要支持 VBScript。如果您想在经典 ASP 中使用“服务器端”VBScript,您有两个选择使用
<script language="vbscript" runat="server"></script>或<% %>。默认情况下,<% %>标记内编写的任何代码都将在“服务器端”上执行 VBScript(VBScript 是 Classic ASP 的默认脚本引擎)。 -
老实说,看看您的代码 sn-p 我不确定您是否了解“客户端”、“服务器端”脚本的概念。如果您尝试在“客户端”执行 VBScript,您需要使用支持它的浏览器,例如 Internet Explorer。但老实说,只要使用 JavaScript,它就更容易被所有主流浏览器访问和支持。
-
因为我写的这不是我的代码,我需要开始支持它。我在 IExplorer 上打开了两个选项卡,一个用于安装在我的服务器 (win7) 上的站点,一个用于旧站点。旧网站在 vbscript 上运行良好,我的不是。我无权访问旧站点服务器,所以我不完全知道它是如何配置的,我唯一看到的是它在那里工作正常并且在我的服务器上运行时不起作用,所以我认为这是一个服务器问题。
-
OK 发现问题,不得不将我的本地主机添加到兼容性视图列表中
-
重点仍然是使用 VBS 客户端意味着您的脚本将无法在 Chrome 或 Firefox 中运行,您将被限制使用 IE。找到一个 javascript 函数来捕获当前日期/时间应该不难。您的函数
onCheckPro()看起来像是在检查 Netscape,这使它至少有 10 年历史
标签: iis vbscript asp-classic