【问题标题】:Using Controlled Embedded Browser in SWT在 SWT 中使用受控嵌入式浏览器
【发布时间】:2012-04-12 12:21:50
【问题描述】:

有谁知道如何在 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 - 但没有关于如何启动此类课程的说明。

【问题讨论】:

    标签: java browser web interaction


    【解决方案1】:

    这是来自Eclipse SWT snippets websiteexample

    此外,这篇文章可能会让您对此有所了解。 Using Java Objects in JavaScript in Eclipse SWT Browser Control

    要将 Java 对象从 Eclipse 公开到 JavaScript,您需要创建一个扩展 BrowserFunction 的类。这个类的构造函数有两个参数;第一个是浏览器实例,第二个是运行 SWT 浏览器控件的 JavaScript 代码中可用的函数的名称... ...

    代码 sn-p

    浏览器功能: <pre>import java.io.File;</pre>

    导入 org.eclipse.swt.browser.Browser; 导入 org.eclipse.swt.browser.BrowserFunction;

    公共类 ListFilesFunction 扩展 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] + 
    

    " 不存在');");

        if (!file.isDirectory())
            browser.execute("alert('Path " + args[0] + " must be a folder');");
    
        return file.list();
    }
    

    }

    将此函数与浏览器控件关联

    public class View extends ViewPart
    {
        Browser browserCtl = null;
        ...

    public void createPartControl(Composite parent) {
        ...
        browserCtl = new Browser(parent, SWT.None);
    
        new ListFilesFunction(browserCtl, "getFiles");
        ...
    }
    ...
    

    } 从 JavaScript 调用这个函数:

    <html>
        <head>
            <script type='text/javascript'>
                files = getFiles("c:/");
    
            for (i = 0; i < files.length; i++)
            {
                document.writeln(files[i] + "<br>");
            }
            </script>
        </head>
        <body>
    
        </body>
    </html>
    

    【讨论】:

    • 没关系,我的回答也晚了:),但希望这可以给其他人参考
    猜你喜欢
    • 2014-09-07
    • 2011-01-24
    • 2019-09-19
    • 2021-11-25
    • 2011-03-03
    • 1970-01-01
    • 2013-11-15
    • 2013-12-08
    • 1970-01-01
    相关资源
    最近更新 更多