我在JS中调用requestFocus()
方法时遇到错误。
Uncaught TypeError: Object #<HTMLAppletElement> has no method 'requestFocus'
这是<head>
代码
function onLoad() {
var attributes = {
'id': 'Client',
'archive': 'client.jar',
'code': 'org.kuzy.client.ui.Applet.class',
'width': '100%',
'height': '100%'
};
var parameters = {
'scriptable': 'true'
};
deployJava.runApplet(attributes, parameters);
window.onfocus = function() {
document.getElementById("Client").requestFocus();
};
}
有一个奇怪的功能,当我在chrome中运行调试代码时,一切正常。 我希望你的建议。
答案 0 :(得分:1)
我不确定,但可能在您调用方法时,requestFocus()applet尚未加载。可能在你正在调试时,你正在停止执行js,并且你有足够的时间来加载applet。因此,您可能需要回调或某种机制才能知道applet何时准备就绪。
答案 1 :(得分:0)
这整个方法都有一个“坏代码”气味。
deployJava.runApplet(attributes, parameters);
调用应位于页面正文中,并在编写页面后立即调用。function onLoad()
虽然在逻辑上应该在文档头中定义。onLoad
调用时,applet至少应 加载 ,甚至可以加载以备使用。请注意,下载页面,脚本,样式和图像时会触发onload
事件。但不涵盖由JVM处理的下载(例如applet的Jars或其媒体资源)。