2012-10-04 53 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");
这就是我对我的浏览器功能做...