2012-10-04 48 views
1

我正在嘗試使用SWT瀏覽器將HTML文件嵌入到Eclipse插件中。Javascript無法識別SWT BrowserFunction

我想調用一個在JavaScript中使用BrowserFunction加載的Java中聲明的函數,但似乎Javascript不能識別我聲明的這個函數。

這裏是我的代碼片段:

@Override 
public void createPartControl(Composite parent) { 

    Browser browser = new Browser(parent, SWT.NONE); 
    new ReadFileFunction(browser, "test"); 

    browser.setUrl("file:///C:/Users/asder/Desktop/timeline/index.html"); 

} 

class ReadFileFunction extends BrowserFunction { 

    public ReadFileFunction(Browser browser, String name) { 
     super(browser, name); 
    } 

    @Override 
    public Object function(Object[] arguments) { 
     System.out.println("asdasdsdad"); 
     return "Hello"; 
    } 

} 

對於JavaScript中,我有:

<script>  
    try { 
     var result = test(); 
     alert(result); 
    } catch(e) { 
     alert('a java error occurred: ' + e.message); 
    } 
</script> 

它只是警告稱這並沒有一個名爲「測試」功能。

任何人都可以幫我嗎?

謝謝!

+0

什麼版的Eclipse?什麼平臺?什麼瀏覽器? 'BrowserFunction'有幾個問題,例如https://bugs.eclipse.org/bugs/show_bug.cgi?id=269198和https://bugs.eclipse.org/bugs/show_bug.cgi?id=269285 ... –

回答

0

我會確保該功能堅持周圍,確保它沒有垃圾收集。 喜歡的東西: final BrowserFunction rff = new ReadFileFunction(browser, "test");
這就是我對我的瀏覽器功能做...