gpt4 book ai didi

javascript - 使用 javascript 调用 Applet.getMethod() 会抛出错误消息 : TypeError: Applet. getMethod() 不是函数

转载 作者:行者123 更新时间:2023-11-30 18:03:40 26 4
gpt4 key购买 nike

我有一个使用 JMF 库的小程序,名称如下:

<object id="cameraViewer"
classid="java:MyApplet.class"
type="application/x-java-applet"
archive="myapplet.jar" height="197" width="159"
align="middle" codebase=".">
<param name="code"
value="MyApplet" />
<param NAME="MAYSCRIPT" VALUE="true" />
<param name="appletWidth" value="250" />
<param name="appletHeight" value="200" />
<param name="archive" value="myapplet.jar" />
<param name="JAVA_CODEBASE" value="." />
<font color="red">Applet error</font>
</object>

然后我调用一个 javascript 函数:

var cameraViewer = document.getElementById('cameraViewer');
var deviceList = new Array(cameraViewer.listDevices());

在javascript代码的第二行,javascript控制台抛出错误(TypeError: cameraViewer.listDevices is not a function)。

只有当我使用 Windows 7 和 Firefox 8.0.1 时才会抛出这个问题

因为这段代码适用于:

  • Windows 7 和 Chrome
  • Windows 7 和 Firefox 20
  • Windows XP 和 Firefox 8.0.1

你对这个问题有什么想法吗!!?

最佳答案

我认为您正在尝试在函数尚未加载时调用该函数(浏览器在加载 applet 时表现不同,有些是同步加载的,有些则不是)。

在尝试调用函数之前检查该函数是否存在对您来说会更安全,如果不存在,请告诉浏览器等待几毫秒。

这是给你的模拟代码:

    var cameraViewer = document.getElementById('cameraViewer');

if (typeof(cameraViewer.listDevices) != "undefined") {
// safe to use the function
var deviceList = new Array(cameraViewer.listDevices());
}
else{
setTimeout(function() {
var deviceList = new Array(cameraViewer.listDevices());
}, 1000);
}

关于javascript - 使用 javascript 调用 Applet.getMethod() 会抛出错误消息 : TypeError: Applet. getMethod() 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16298597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com