我们有JSF 2.0(primefaces)应用程序,其中的applet包含在网页中。这样的事情。

<h:panelGroup id="appletbox" layout="block">
<applet id="termApplet" code=com.foo.TermApplet archive=...>
         <param name=... value=... />
</applet>
</h:panelGroup>


该小程序是SSH终端仿真,并打开一个连接。我们称之为
在com.foo.TermApplet中-有一个公共的void方法openFrameFromWebPage(String host)
是从javascript调用的:

function openTerminal(host) {
   var termApplet = document.getElementById("termApplet");
   termApplet.openFrameFromWebPage(host);


}

这很好。问题是,每当包含该小程序的网页都发出请求时(包括ajax),它会导致小程序重置并从头开始。

我想做的是,以某种方式将小程序排除在回发之外。想象一下,您正在终端中的vim中编辑一些文件,然后单击网页上的单选按钮以获取有关必须在服务器上进行的工作的其他数据-它将重置连接,并且您丢失所有未保存的数据。

有办法解决这个问题吗?

最佳答案

弹出另一个不关闭警告的浏览器,然后打开其中的小程序。如果浏览器没有刷新,而您仅在执行ajax,请添加一个iframe并从中打开该applet。

10-04 21:53