首页 > 解决方案 > SWT 浏览器不使用 D3 显示页面

问题描述

我想在 SWT 浏览器中显示一个使用 D3 的 html 页面。

如果我加载一个 URL,就像www.google.com它正确加载并允许我搜索等。如果我尝试加载一个包含 D3 的页面,我发现什么都没有显示,也没有输出错误。

例子

public class D3BrowserExample {

    public static void main(String args[]) {
    Display display = new Display();
    final Shell shell = new Shell(display, SWT.SHELL_TRIM);
    shell.setLayout(new FillLayout());
    Browser browser = new Browser(shell, SWT.NONE);
    browser.addTitleListener(new TitleListener() {
        @Override
        public void changed(TitleEvent event) {
        shell.setText(event.title);
        }
    });
    browser.setBounds(0, 0, 1200, 900);
    shell.pack();
    shell.open();

    browser.setJavascriptEnabled(true);

    browser.setUrl("https://observablehq.com/@d3/force-directed-graph");

    browser.addProgressListener(new ProgressListener() {
        @Override
        public void completed(ProgressEvent event) {
        System.out.println("Page loaded");

        }

        @Override
        public void changed(ProgressEvent event) {
        }
    });
    
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) {
        display.sleep();
        }
    }
    }
}

是否可以使用 SWT 浏览器执行 D3?另外,如何获取 Javascript 输出来调试问题?

更新

我已经在另一台装有 SWT 4.3 版的 Windows 10 PC 上尝试过这个。complete为进度侦听器调用该方法,但没有显示任何内容。

Eclipse Bugzilla

https://bugs.eclipse.org/bugs/show_bug.cgi?id=568789

标签: javascriptjavad3.jsswt

解决方案


推荐阅读