Browser: modify DOM (executing javascript)

來源:互聯網
上載者:User

Web browser執行javascript

 

 

 


/*******************************************************************************

 
* Copyright (c) 2000, 2004 IBM Corporation and others.

 
* All rights reserved. This program and the accompanying materials

 
* are made available under the terms of the Eclipse Public License v1.0

 
* which accompanies this distribution, and is available at

 
* http://www.eclipse.org/legal/epl-v10.html


 
*

 
* Contributors:

 
*     IBM Corporation - initial API and implementation

 
*******************************************************************************/

/*

 
* Browser example snippet: modify DOM (executing javascript)

 
*

 
* For a list of all SWT example snippets see

 
* http://www.eclipse.org/swt/snippets/

 


 
* @since 3.1

 
*/

import 

org.eclipse.swt.SWT;

import 

org.eclipse.swt.browser.Browser;

import 

org.eclipse.swt.layout.FillLayout;

import 

org.eclipse.swt.widgets.Button;

import 

org.eclipse.swt.widgets.Composite;

import 

org.eclipse.swt.widgets.Display;

import 

org.eclipse.swt.widgets.Event;

import 

org.eclipse.swt.widgets.Listener;

import 

org.eclipse.swt.widgets.Shell;

import 

org.eclipse.swt.widgets.Text;

public class 

JavascriptExec 
{

  
public static 

void 

main
(
String
[] 
args
) {

    
final 

String 
html
 



"<html
><title>Snippet</title><body><p id='myid'>Best Friends</p><p id='myid2'>Cat and Dog</p></body></html
>"
;

    
Display display = 
new 

Display
()
;

    
final 

Shell shell = 
new 

Shell
(
display
)
;

    
shell.setLayout
(
new 

FillLayout
())
;

    
final 

Browser browser = 
new 

Browser
(
shell, SWT.BORDER
)
;

    
Composite comp = 
new 

Composite
(
shell, SWT.NONE
)
;

    
comp.setLayout
(
new 

FillLayout
(
SWT.VERTICAL
))
;

    
final 

Text text = 
new 

Text
(
comp, SWT.MULTI
)
;

    
text.setText
(
"var newNode = document.createElement('P'); /r/n"

        

"var text = document.createTextNode('At least when I am around');/r/n"

        

"newNode.appendChild(text);/r/n"

        

"document.getElementById('myid').appendChild(newNode);/r/n" 

"/r/n"

        

"document.bgColor='yellow';"
)
;

    
final 

Button button = 
new 

Button
(
comp, SWT.PUSH
)
;

    
button.setText
(
"Execute Script"
)
;

    
button.addListener
(
SWT.Selection, 
new 

Listener
() {

      
public 

void 

handleEvent
(
Event event
) {

        
boolean 

result = browser.execute
(
text.getText
())
;

        
if 

(
!result
) {

          
/* Script may fail or may not be supported on certain platforms. */

          
System.out.println
(
"Script was not executed."
)
;

        
}

      
}

    
})
;

    
browser.setText
(
html


)
;

    
shell.open
()
;

    
while 

(
!shell.isDisposed
()) {

      
if 

(
!display.readAndDispatch
())

        
display.sleep
()
;

    
}

    
display.dispose
()
;

  
}

}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.