我正在尝试使用FSO=Server.CreateObject("Scripting.FileSystemObject")来使用名为"csImageFile"的ASP实用程序复制/保存文件
目前,我拥有的FSO代码在一个单独的.asp页面上。当用户选择一个选项(使用值="xxx.asp…"调用代码页)时,会从页面调用此选项。这很好用。
问题是FSO代码页response.redirect到调用页,刷新会丢失数据。
我希望select/选项的"点击"通过将代码放在原始调用页面上的子例程中来调用FSO代码(从而避免刷新)。我尝试过各种方法,但都没有成功。我现在调用一个js函数,然后它本身调用一个VBscript子例程。这可能不正确,但我已经尝试了很多排列,现在我有点迷路了。
页面
<option onclick="calljsSub()"...
脚本
<script language="JavaScript">
function calljsSub(){
//alert("js called");
VBFunc();
}
</script>
<script language="VBScript">
Sub VBFunc()
SET FSO = Server.CreateObject("Scripting.FileSystemObject")
If FSO.FileExists ( "path to file") Then
Set Image = Server.CreateObject("csImageFile.Manage")
Image.ReadFile "path to file"
Image.WriteFile Server.MapPath("path to new file")
end if
Set FSO = Nothing
End Sub
VBScript函数似乎不起任何作用。也许还有另一种方法可以在不刷新的情况下运行代码??欢迎任何建议。
我将非常感谢任何建议,因为我从圣诞节前就一直在努力解决这个问题。
标记谢谢标记
这里的问题是您混淆了客户端和服务器上发生的事情:
click event = client
javascript code = client
VB Script = server
你不能从客户端调用服务器上的函数——它们是不同的机器。您需要调用一个URL,即ASP页面。这个ASP页面需要查看正在发出的请求,获取发送的任何请求参数,并根据这些参数决定运行哪些代码——在这种情况下是您的VBFunc()。
这是网页工作的最基本功能:
页面->请求->服务器->响应(新页面)
是的,您可以使用AJAX技术在不刷新的情况下运行代码,但请先尝试使基本代码正常工作。
感谢您的帮助。我通过主页上隐藏的iframe调用asp页面来解决这个问题。干杯