我在我的html文件中为我的网站编写了vbscript,但我无法让它工作。我知道它只适用于Internet Explorer,因为这是我看到人们用这个问题写的常见答案。我能够获得基本的vbscript工作,但是当尝试使用filesystemobjects打开文本文件时没有任何反应。正在使用的代码如下。
<Script type="text/vbscript">
Dim fsobj, objtxt, thearr
Set fsobj = CreateObject("Scripting.FileSystemObject")
Set objtxt = fsobj.OpenTextFile("./subfolder/foo.txt", 1)
thearr = split(objtxt.readline, ",")
document.write(thearr(0) & " and " & thearr(1))
</script>
我在使用asp扩展程序保存时可以使用代码,但是当我保存为html时,是否有办法让它只使用html扩展名?如果没有,是否有人解释为什么没有asp扩展的脚本文件系统对象不起作用?我似乎无法寻找我正在寻找的答案。
答案 0 :(得分:2)
当您将脚本作为客户端脚本运行时,它将尝试从客户端计算机而不是服务器访问该文件。该文件不存在,即使存在,也不允许您的脚本访问它。
答案 1 :(得分:2)
当您从ASP页面使用FileSystemObject时,您正在操作服务器的文件系统。这是允许的。
但是,当您使用上述代码时,您正在客户端上执行代码。不允许从Internet Explorer内部访问客户端文件系统,因为它会产生严重的安全隐患。技术术语是“sandboxing”。
如果您需要与客户端计算机上的文件系统进行交互,则需要使用ActiveX等技术。
答案 2 :(得分:1)
您应该考虑使用.hta后缀重命名文件来使用HTML应用程序。
HTA在没有互联网浏览器安全模型约束的情况下执行;事实上,它作为“完全信任”的应用程序执行。
在互联网浏览器中运行的HTML文件被视为“不受信任”,因为代码来自互联网,并且通常被视为“不受信任”,因此浏览器强制执行严格的安全模型,以防止这些HTML页面获得对您的计算机的访问权限这就是FileSystemObject无法打开文本文件的原因。但是,作为HTA,它不再由您的浏览器运行,而是通过Microsoft的MSHTA应用程序运行,该应用程序可以完全信任您的脚本。
有关详细信息,请参阅HTML Application - Wikipedia。