applet 的一个调试方法

比如说我有一个数据希望要打印到文本里。applet 直接操作文本是很麻烦的,因为涉及到applet 本身的权限安全,只能通过 url 对象来连接文本文件。
 
我这里想了一个取巧的方法。
 
首先要找到那个传说中,可以从 applet 调用网页内javascript 对象的 netscape.javascript.JSObject 类。
 
那些网上一大抄的文章里,都会夸夸其谈如何使用这个类,却根本不说这个类可以从哪里找到。我当初就是大费周章,因为有介绍说这个是netscape 浏览器附带的东西,我还特意去安装了网景浏览器,没找到。最后是在ms 的java 虚拟机里寻到的。
 
但是ms 的java 虚拟机好象停止下载了。可以去163 的聊天室帮助里下这个东西。
 
 
不知道现在这个连接还有没有效。
 
安装以后,在classpath 路径的设置里面,把安装目录Java/Packages/下面的若干.zip 文件都包含进来,就可以使用netscape.javascript.JSObject
 
下面具体讲这个调试方法
 
举例:
applet 文件 a.class
包含网页 a.htm
 
在a.htm 的代码里写上
<APPLET height=100 width=100 code=a.class></APPLET>
<form name="dataform">
<input name="a" type=hidden>
<form>
<SCRIPT language=javascript>
<!--
function pri() {
document.write(window.dataform.a.value);
}
//-->
</SCRIPT>
 
在a.class 里面加入如下代码
String debugInfo="look here";
//然后在某个触发方法里加入如下代码
        try {
                      JSObject.getWindow(this).eval("javascript:dataform.a.value='"+debugInfo+"'");
         JSObject.getWindow(this).eval("javascript:pri();");
         } catch (Exception e) {}
 
剩下的就不用说明了吧
 
在applet 里面触发某一事件,在网页里就会打印出调试信息
 
恩,恩,适用于某些特殊场合
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页