2008-11-13 26 views
3

我正在使用現有的Java代碼庫,該代碼雖然可以使用<APPLET>標記從HTML頁面調用,但實際上並沒有對Applet類進行子類化。在非瀏覽器上下文中也使用相同的JAR,所以它們沒有子類Applet。Java <-> Javascript對於非Applets?

現在我需要將一些來自Java的值返回給調用頁面的Javascript。通常人們會使用JSObject來做到這一點,但是我可以使用JSObject.getWindow,它只適用於Applet的子類。

有兩種:

  • 一個使用JSObject從東西是不是一個Applet子類的方式?
  • 一些其他的機制來回傳給調用頁面的Javascript?

回答

2

我想你實際上需要在jar文件中實現一個applet來處理你的代碼和瀏覽器本身之間的通信。也許只需使用非applet jar作爲類lib,並使applet jar成爲一個簡單的包裝器,它代理瀏覽器和Java代碼之間的調用。

3

在小程序中調用JSObject.getWindow(this)。然後將JSObject傳遞到通常需要的代碼中。

1

返回值有什麼問題?

從Javascript您可以通過使用getElementById(「id-of-embed-tag」)來訪問Java對象。然後你可以調用該對象的任何公共方法。該方法返回的Java對象將可用於您的Javascript代碼。

+0

那是我沒有考慮過的方法。我最終會從Javascript中進行輪詢,直到發生變化,但這可能會起作用。 – DGentry 2008-11-15 04:31:33