Java SWT Browser滚动到页面底部

时间:2012-07-20 03:22:15

标签: java swt

我有一个浏览器,我正在以类似的方式添加内容:

browser.setText(browser.getText() + newText());

然后,当html太多而不适合视图时,我希望浏览器向下滚动,所以在每次调用setText()之后我也会这样做(正如其他地方的问题答案所示)网络):

browser.execute("window.scrollTo(0, document.body.scrollHeight)");

然而,这不起作用!我也尝试使用锚点滚动到,但这也不起作用。

如何实现这一目标?相反,我的方法中的问题在哪里(似乎对其他人有效)?

由于

编辑:这是我的实际代码:

protected void createContents() {
    shell = new Shell();
    shell.setSize(450, 300);
    shell.setText("SWT Application");

    final Browser browser = new Browser(shell, SWT.NONE);
    browser.setBounds(10, 10, 430, 220);

    Button btnNewButton = new Button(shell, SWT.NONE);
    btnNewButton.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseUp(MouseEvent e) {
            browser.setText(browser.getText() + "<p>weeee!!!</p>");
            browser.execute("window.scrollTo(0, document.body.scrollHeight)");
        }
    });
    btnNewButton.setBounds(10, 236, 430, 32);
    btnNewButton.setText("New Button");

}

2 个答案:

答案 0 :(得分:0)

我已经找到 的方法来做到这一点。它与我的上述方法非常相似,只是代替

browser.setText(browser.getText() + "<p>weee!!</p>");

我用过

String stringToAdd = "wee";
browser.execute(String.format("document.write('%s')", stringToAdd
                .replace("\\", "\\\\")
                .replace("'", "\\'")
                .replace("\"", "\\\"")));

仍不确定我的初步方法存在什么问题......

答案 1 :(得分:0)

我在我的一个项目中做了类似的事情,但是不使用“document.write('%s')”,而是使用了“document.body.insertAdjacentHTML('beforeEnd','%s')”。在HTML的主体块中添加HTML代码,在所有其他HTML之后,但在结束正文标记之前。