我有一个在 Firefox 中运行良好的小程序,但是在 ie8(我认为是 ie7)中,javascript 似乎无法访问小程序方法。
在 js 调试器中 -
scanApplet.addUploadParameter
给了我一个java异常-
java.lang.NoSuchFieldException: addUploadParameter in class: co.altcom.cache.scanner.CacheScan
我实际上尝试运行的(jquery)代码是
$('input, select').each(function () {
scanApplet.addUploadParameter(this.name, this.value);
});
抛出以下 java 异常 -
java.lang.NullPointerException
我真的不知道从哪里开始......
最佳答案
在 each
中,您应该使用包含在 jQuery 函数中的 this
关键字。此外,对于名称,您可以使用 prop
函数,值是 val()
功能。所以 jQuery 将是:
$('input, select').each(function () {
scanApplet.addUploadParameter($(this).prop('name'), $(this).val());
});
这应该修复 JavaScript 位。如果没有更多信息,我无法判断它是否解决了您的所有问题,以及是否解决了 Java 错误,因此,如果您在此之后仍需要更多帮助,请向我们提供更多信息。
编辑
评论中提到IE7仍然存在问题。您应该在 IE7 中调试该调用,然后查看哪一段代码给您带来了麻烦。一种快速、老旧且非常脏的方法是仅记录或发出警报以查看问题所在。例如:
// scanApplet.addUploadParameter($(this).prop('name'), $(this).val());
alert(scanApplet);
alert(scanApplet.addUploadParameter);
alert($(this).prop('name'));
// etc etc
关于java - 在 IE7 中通过 javascript 访问小程序方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10122964/