Posted on 2007-06-26 10:32
zht 閱讀(1591)
評論(0) 編輯 收藏
一般applet在網(wǎng)頁中顯示之前有兩個過程
1、下載applet
2、初始化applet(init)
如果不做處理則剛開始的時候會是灰色的一塊,而且有一個框提示單擊以激活。通過做如下處理可以來處理這些問題:
1、在網(wǎng)頁上定義一個DIV層,將其設為全屏顯示,通過<div id="show" style="width: 1%;height: 1%"><script type="text/javascript" src="js.js"></script>
</div>的方式把applet鑲入網(wǎng)頁,必須要有一定的長寬,要不applet是不會加載的,用來模擬applet下載和初始化工程,因為下載過程是無法控制的,它和網(wǎng)絡以及applet的大小有關系,所以剛開始的時候可以用一個gif來顯示程序下載過程。
2、applet下載完成進入初始化階段以后,就可以通過applet調用javascript在頁面上顯示初始化過程了,通過調用頁面js中的一些函數(shù)在頁面上輸出初始化進度,具體可以applet調用js,以進度條的形式展現(xiàn)給用戶。
3、applet初始化完畢以后把DIV層設為不可見,完畢。
關于單擊以激活提示框,這個提示框,是微軟為了避免與eolas公司和加利福尼亞大學之間的專利侵權糾紛,而發(fā)布的一個ie非安全更新,這不是什么bug(http://support.microsoft.com/kb/912945)安裝這個補丁以后,ie對activex控件和java程序的處理方式將有所改變,默認情況下不會主動激活。可以有兩種處理方式(1)卸載微軟的更新補丁(2)通過程序的方式來處理,這里推薦第二種方法。具體如下:
不在頁面上直接寫applet或object標簽通過javascript寫入,并且要把這些javascript語句寫入到一個js中,然后用<script type="text/javascript" src="js.js"></script>的方式載入 這樣就可以避免出現(xiàn)單擊以激活提示框。
以下是Applet調用頁面Javascript的示例:
首先要導入jre/lib下的 plugin.jar文件
import netscape.javascript.JSObject;
JSObject window = JSObject.getWindow(this);
JSObject docment = (JSObject) window.getMember("document");
docment.eval("setPB(" + 10 + ")");
for (int i = 0; i < 11; i++) {
Thread.sleep(500);
docment.eval("setPB(" + i * 10 + ")");
docment.eval("setStr('" + i * 100000 + "初始化 ')");
}