Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.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
在js中调用java小程序requestFocus()方法时出错_Java_Javascript_Html_Applet_Onload - Fatal编程技术网

在js中调用java小程序requestFocus()方法时出错

在js中调用java小程序requestFocus()方法时出错,java,javascript,html,applet,onload,Java,Javascript,Html,Applet,Onload,在JS中调用requestFocus()方法时出错 Uncaught TypeError: Object #<HTMLAppletElement> has no method 'requestFocus' 有一个奇怪的特性,当我在chrome的debug中运行代码时,一切都正常。 我希望得到您的建议。我不确定,但可能在您调用requestFocus()方法时,小程序尚未加载。可能在调试时,您正在停止js执行,并给小程序足够的时间来加载。所以,您可能需要回调或某种机制才能知道小程序何

在JS中调用
requestFocus()
方法时出错

Uncaught TypeError: Object #<HTMLAppletElement> has no method 'requestFocus'
有一个奇怪的特性,当我在chrome的debug中运行代码时,一切都正常。
我希望得到您的建议。

我不确定,但可能在您调用requestFocus()方法时,小程序尚未加载。可能在调试时,您正在停止js执行,并给小程序足够的时间来加载。所以,您可能需要回调或某种机制才能知道小程序何时准备就绪。

整个方法都有一种“坏代码”的味道

  • deployJava.runApplet(属性、参数)调用应该在页面正文中,并在写入页面后立即调用
  • 但是,
    函数onLoad()
    应该在文档头中进行逻辑定义
  • 在调用
    onLoad
    时,小程序至少应该是正在加载,甚至可能已经加载就绪,可以使用。请注意,
    onload
    事件在下载页面、脚本、样式和图像时触发。但它不包括由JVM处理的下载(例如小程序的JAR或其媒体资源)

  • “。需要回调或某种机制才能知道小程序何时准备就绪。”是的,没错+1找到了解决方案。我使用函数
    setInterval()
    检查每秒的小程序状态。问题是每次运行包含小程序的html页面时,Java插件都会显示一个对话框来确认是否运行小程序,但与此同时,html页面会继续加载,直到用户给予许可,小程序将不会加载,并且对小程序的引用将为空。更重要的是,需要按照中的建议轮询小程序!