有没有人知道如何在SWT中使用“受控嵌入式浏览器”,它允许页面操作?我只能找到有关如何使用普通SWT浏览器的信息,但我需要能够与加载的页面进行交互。谢谢。像这样 - http://publib.boulder.ibm.com/infocenter/btt/v7r0/index.jsp?topic=%2Fcom.ibm.btt.application_presentation.doc_7.0%2Fdoc%2Freference%2Frichclient%2Fcontrolembededbrowser.html - 但没有关于如何开设这样一堂课的指示。
答案 0 :(得分:3)
以下是来自example
的Eclipse SWT snippets website此帖也可能会为您提供一些见解。 Using Java Objects in JavaScript in Eclipse SWT Browser Control
要将Java Object从Eclipse公开给JavaScript,您需要创建一个扩展BrowserFunction的类。这个类的构造函数有两个参数;第一个是Browser实例,第二个是运行SWT浏览器控件的JavaScript代码中可用的函数的名称......
代码段
BrowserFunction:
import java.io.File;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.browser.BrowserFunction;
public class ListFilesFunction extends BrowserFunction {
Browser browser = null;
String functionName = null;
public ListFilesFunction(Browser browser, String name) {
super(browser, name);
this.browser = browser;
this.functionName = name;
}
public Object function (Object[] args)
{
if (args.length == 0)
browser.execute("alert('Function " +
functionName + " requires one argument - parent folder path');");
File file = new File(args[0].toString());
if (!file.exists())
browser.execute("alert('Folder " + args[0] +
" does not exist');");
if (!file.isDirectory())
browser.execute("alert('Path " + args[0] + " must be a folder');");
return file.list();
}
}
将此功能与浏览器控件
相关联 Browser browser = null;
String functionName = null;
public ListFilesFunction(Browser browser, String name) {
super(browser, name);
this.browser = browser;
this.functionName = name;
}
public Object function (Object[] args)
{
if (args.length == 0)
browser.execute("alert('Function " +
functionName + " requires one argument - parent folder path');");
File file = new File(args[0].toString());
if (!file.exists())
browser.execute("alert('Folder " + args[0] +
if (!file.isDirectory())
browser.execute("alert('Path " + args[0] + " must be a folder');");
return file.list();
}
从JavaScript调用此函数: