2010-11-01 17 views
2

我一直在想調用Java方法,如果有一種方法,使下面的JavaScript功能在IE8和Chrome瀏覽器:在IE8的JavaScript和鉻

var funct = function() 
{ 
var ppt = new java.awt.Point(200,100); 
alert(ppt.x); 
} 

這件事只能在Firefox瀏覽器。有沒有辦法在IE 8和Chrome中啓用全局Java包?

+1

這應該是怎樣在Firefox中工作? – 2010-11-01 10:12:01

+0

您在html文件中創建一個腳本,然後運行腳本。這就是它應該如何工作......而且確實如此。 – 2010-11-01 10:13:44

+0

我很驚訝地發現Firebug中的「java」返回一個「JavaObject」。而'new java.awt.Point'確實有效。不知道爲什麼,在Google上找不到太多內容。 – 2010-11-01 10:14:12

回答

1

嗯,在這裏。 IE 8和Chrome不支持全局java包: 即你不能直接在你的javascript中使用java.lang.String或java.atw.Point。但是,如果您有一個小程序,則可以通過小程序輕鬆地公開這些類。例如,如果你在你的小程序輸入java.awt.Point中,並有這樣的方法:

public Point createPoint(int x,int y);

你應該從你的JavaScript現在能夠訪問該小程序並調用它的方法是這樣的:

(javascript代碼)

var applet = document.getElementById("applettie"); 
var Point = applet.createPoint(20,30); 
//now you have the Point object 

乾杯

+0

明確的+1這個,謝謝分享! – 2010-11-04 09:43:02

2

不完全回答你的問題 - 但你可能會發現GWT(http://code.google.com/webtoolkit/)很有幫助。

它可以讓你用Java編寫Web應用程序,該應用程序將JavaScript編譯爲JavaScript,以便在任何現代瀏覽器中運行。它只支持標準Java庫的一個子集 - 特別是它不支持java.awt。

+0

謝謝,親愛的伊恩,但是GWT不會對我有任何好處,原因有兩個:1.我已經使用它2年了,它不包含我需要的功能。 2.我試圖實現的任何瀏覽器都不應該被允許! 3.我有良好的意圖,但即使我害怕我所取得的成績和開啓的可能性...... – 2010-11-01 10:45:12

+0

hehehe你的意圖是什麼? - 你是否希望訪問用戶系統上的文件? – scunliffe 2010-11-01 14:20:12

+0

大聲笑,這將是太容易了......其實我正在做的是使用Java小程序,以便我可以調用它的功能使用JavaScript。但是,java applet本身使用JNA(java本地訪問)來調用一些本地的東西。在一天結束的時候,你得到的是JavaScript調用本地函數。這裏是東西的原理圖:::: javascript - > java - > native(user32,gdi32等) – 2010-11-01 15:41:16