2012-07-20 94 views
1

的底部我有一個瀏覽器,我將內容添加到它的方式與此類似:的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"); 

} 

回答

0

嗯,我已經想通了一個辦法做到這一點。它非常類似於我上面的方法,而不是隻

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

我用

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

仍然不知道該怎麼跟我最初的做法的問題是,雖然...

0

我沒有類似的東西在我的一個項目中,不是「document.write('%s')」,而是使用了「document.body.insertAdjacentHTML('beforeEnd','%s')」。這樣做在HTML的主體塊內添加了HTML代碼,在所有其他HTML之後,但在結尾body標籤之前。

+0

這是一個巧妙的技巧(insertAdjacentHTML)。我以前沒有見過。謝謝。 – 2012-10-22 16:32:17