如何将数组从VBScript传递给JavaScript?

Eja*_*jaz 3 javascript arrays vbscript

我有一个网页,我将文件夹中的文件名称提取到数组中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
Run Code Online (Sandbox Code Playgroud)

JS:

var folderFiles = allFiles();
alert(folderFiles.length); // alerts `undefined`
Run Code Online (Sandbox Code Playgroud)

我可以将硬编码值从vbscript传递给javascript,但不能传递给这个数组.

请建议.

Jam*_*rpe 5

您必须将结果数组包装在一个VBArray对象中并调用toArray:

var folderFiles = new VBArray(allFiles());
var ff = folderFiles.toArray();
alert(ff.length);
Run Code Online (Sandbox Code Playgroud)

或者在一行中:

var folderFiles = (new VBArray(allFiles())).toArray();
Run Code Online (Sandbox Code Playgroud)

请注意,在IE11边缘模式下不推荐使用VBScript,因此它会在某些时候消失.