如何将数组从 VBScript 传递到 JavaScript?
How to pass an array from VBScript to JavaScript?
我有一个网页,我在其中使用 VBScript
将文件夹中的文件名提取到一个数组中,然后将该数组传递给 JavaScript
变量,以便我可以显示屏幕上的名字。
VBScript 代码:
Function allFiles()
Dim arr, arr2, oTargetFolder
arr = array()
set oFSO = CreateObject("Scripting.FileSystemObject")
oTargetFolder = "C:\Users\msiddiq1\Documents\WSDLs"
set objFolder = oFSO.GetFolder(oTargetFolder)
set oFiles = objFolder.Files
For Each files in oFiles
ReDim Preserve arr(UBound(arr) + 1)
arr(UBound(arr)) = files.Name
Next
allFiles = arr
End Function
JS:
var folderFiles = allFiles();
alert(folderFiles.length); // alerts `undefined`
我可以将硬编码值从 vbscript 传递到 javascript,但不能传递给这个数组。
求推荐。
您必须将结果数组包装在 VBArray
object and call toArray
:
var folderFiles = new VBArray(allFiles());
var ff = folderFiles.toArray();
alert(ff.length);
或一行:
var folderFiles = (new VBArray(allFiles())).toArray();
请注意,VBScript 在 IE11 边缘模式中已被弃用,因此它会在某些时候消失。
我有一个网页,我在其中使用 VBScript
将文件夹中的文件名提取到一个数组中,然后将该数组传递给 JavaScript
变量,以便我可以显示屏幕上的名字。
VBScript 代码:
Function allFiles()
Dim arr, arr2, oTargetFolder
arr = array()
set oFSO = CreateObject("Scripting.FileSystemObject")
oTargetFolder = "C:\Users\msiddiq1\Documents\WSDLs"
set objFolder = oFSO.GetFolder(oTargetFolder)
set oFiles = objFolder.Files
For Each files in oFiles
ReDim Preserve arr(UBound(arr) + 1)
arr(UBound(arr)) = files.Name
Next
allFiles = arr
End Function
JS:
var folderFiles = allFiles();
alert(folderFiles.length); // alerts `undefined`
我可以将硬编码值从 vbscript 传递到 javascript,但不能传递给这个数组。
求推荐。
您必须将结果数组包装在 VBArray
object and call toArray
:
var folderFiles = new VBArray(allFiles());
var ff = folderFiles.toArray();
alert(ff.length);
或一行:
var folderFiles = (new VBArray(allFiles())).toArray();
请注意,VBScript 在 IE11 边缘模式中已被弃用,因此它会在某些时候消失。