簡體   English   中英

在DOM上加載Java applet

[英]loading java applet on DOM load

我進行了很多搜索,但可能是搜索錯誤的字符串。 一個Java applet正在向頁面中添加實時位,java applet訪問頁面上的輸入字段並放置信息

<input type="hidden" id="F1" value="Nothing Yet">

然后在頁面上調用LivePicker()上的javascript函數,然后簡單地獲取一個值

var ClockVal = document.getElementById("F1").value;
document.getElementById("ICSCLOCK").innerHTML = ClockVal;

我面臨的問題是,它可以正常工作,但有時在firebug控制台中會給出未定義LivePicker的錯誤,而LivePicker在頁面上會運行得很好,而有時它將給出F1卻未定義,而我的時鍾仍在工作精細。 所有這些錯誤都會在頁面加載時出現。

Java applet按順序放置數據,它首先放置數據,然后調用js函數進行處理。 在使用最少的HTML和JS的測試頁上,這可以很好地工作,但是當我將其集成到應用程序中時,該應用程序使用了YUI的許多組件和我自己的JS代碼(現在已經明顯減少了),它會出現這些錯誤。 我想補充一點,在縮小之前,這些錯誤很有可能出現,但是在縮小JS和CSS之后,頁面加載時間減少到一半,而這些錯誤的出現也減少到一半。

我懷疑這是由於在頁面加載時,applet試圖操縱尚未准備好的DOM。 是否有什么可能會使applet停止等待DOM完全加載? 我嘗試了YUI的window.onload和onDOMReady函數,它們似乎根本沒有效果。

有人可以幫忙嗎?

您可以嘗試使用setTimeout延遲執行

https://developer.mozilla.org/en/DOM/window.setTimeout

或jQuery庫也可以幫助解決文檔對象上的ready事件

http://docs.jquery.com/Events/ready#fn

瀏覽器應該延遲執行window.onload代碼,直到創建DOM樹之后以及所有其他外部資源都完全加載並且頁面在瀏覽器中顯示為止。

window.onload應該工作。 小程序必須在onload事件之前運行。

作為測試,您可以執行以下操作並查看它是否有任何更改:

  • 在頁面中創建一個隱藏的“設置”字段,其值為“ false”;
  • 在window.onload上,將“設置”字段的值設置為“ true”;
  • 在您的小程序中,檢查“設置”字段;
  • 僅在定義了“設置”字段且值為“ true”的情況下,才開始在applet中執行操作;

另一方面,不要在小程序中忙於測試“設置”字段。 如果該字段未定義或為false,則您的小程序不應采取任何措施。 您可以根據需要在window.onload上重新激活它。

使用dpb建議以稍微不同的方式解決了此問題。 我寫的這篇博客文章應該向面臨類似問題的人們進行詳盡的解釋。

從Javascript控制Java小程序,尤其是當您從小程序往返訪問網頁時

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM