1

我正在尝试使用 SWT 浏览器将 html&javascript 文件嵌入到 Eclipse 插件中。

我想在使用 BrowserFunction 加载的 Javascript 中调用用 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>

它只是提醒说它没有名为“测试”的功能。

谁能帮我吗?

谢谢!

4

1 回答 1

0

我会通过确保它没有被垃圾收集来确保该功能仍然存在。类似的东西: final BrowserFunction rff = new ReadFileFunction(browser, "test");
这就是我为浏览器功能所做的......

于 2013-01-02T16:57:27.027 回答