我有一个浏览器,我正在以与此类似的方式向其中添加内容:
browser.setText(browser.getText() + newText());
然后,当 html 太多而无法容纳在 View 中时,我希望浏览器向下滚动,因此在每次调用 setText()
之后,我也会这样做(如答案所建议的那样)对于网络上其他地方的这个问题):
browser.execute("window.scrollTo(0, document.body.scrollHeight)");
但是,这行不通!我也尝试过使用 anchor 滚动到,但这也不起作用。
如何实现这一点?相反,我的方法的问题出在哪里(这似乎对其他人有效)?
谢谢
编辑:这是我的实际代码:
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");
}
最佳答案
好吧,我已经想出了一种方法来做到这一点。它与我上面的方法非常相似,只是代替了
browser.setText(browser.getText() + "<p>weee!!</p>");
我用过
String stringToAdd = "wee";
browser.execute(String.format("document.write('%s')", stringToAdd
.replace("\\", "\\\\")
.replace("'", "\\'")
.replace("\"", "\\\"")));
仍然不确定我最初的方法有什么问题......
关于Java SWT 浏览器滚动到页面底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11572402/