Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在IE中获取从小程序传递到其Javascript包装器的Java数组的长度_Java_Javascript_Internet Explorer_Applet - Fatal编程技术网

在IE中获取从小程序传递到其Javascript包装器的Java数组的长度

在IE中获取从小程序传递到其Javascript包装器的Java数组的长度,java,javascript,internet-explorer,applet,Java,Javascript,Internet Explorer,Applet,我的小程序中有以下方法: public File[] getFiles() 我从Javascript调用它,如下所示: var files = applet.getFiles(); for (var i = 0; i < files.length; i++) { // Do something. } 任何人有什么想法吗?你可以在IE中使用它来调查文件发生了什么事 首先,在文件中包含Firebug Lite <script type='text/javascript'

我的小程序中有以下方法:

public File[] getFiles()
我从Javascript调用它,如下所示:

var files = applet.getFiles();

for (var i = 0; i < files.length; i++) {
    // Do something.
}
任何人有什么想法吗?

你可以在IE中使用它来调查
文件发生了什么事

首先,在文件中包含Firebug Lite

<script type='text/javascript' 
    src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>

现在在控制台中用

var files = applet.getFiles();
console.log(files);
for (var i = 0; i < files.length; i++) //...
var files=applet.getFiles();
console.log(文件);
对于(var i=0;i
现在,您可以调查
getFiles()


我给出这个建议是因为IE说
length
不是空的或不是对象,而不是
files
是空的或不是对象,所以可能
files
有其他方法可以使用。使用Firebug来反映这些问题。

不确定将Java数组传递给javascript的支持范围有多广。一种解决方法是将数组作为分隔字符串返回,如下例所示


找到了变通方法。与其返回数组,不如返回列表。然后使用get和size方法对其进行迭代。适用于IE和Firefox

因此,小程序方法应为:

public List<File> getFiles()
公共列表getFiles()
在Javascript端使用它:

var files = applet.getFiles();
for (var i = 0; i < files.size(); i++) {
    // Do something with files.get(i).
}
var files=applet.getFiles();
对于(var i=0;i
对Java一无所知,我只能问你是否尝试过“for(I in files){/*do stuff*/}”你不是指File[](而不是files[])?除此之外,如果您向(文件)发出警报,则会有所帮助。另外,如果你有一个javascript调试器(例如DebugBar),这将是最有用的。@annakata:是的,我试过了。它在Firefox或IE中都不起作用。@laginimaineb:更正问题。谢谢此外,警报(文件)并没有多大帮助,但我将尝试下面kizzx2的建议来窥探文件的结构。已经看到了这个链接。这种方法是不可行的,因为getFiles返回一个非字符串对象数组。我意识到,您可以从文件数组所需的字符串属性(例如文件路径)构建字符串。然后,您可以使用应该首先选中的路径从文件中获取所需的详细信息。这里明确指出,在某个LiveConnect版本中,数组是不可靠的。
var files = applet.getFiles();
for (var i = 0; i < files.size(); i++) {
    // Do something with files.get(i).
}