在SWT中使用受控嵌入式浏览器

时间:2012-03-28 20:51:57

标签: java browser web interaction

有没有人知道如何在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 - 但没有关于如何开设这样一堂课的指示。

1 个答案:

答案 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调用此函数: