DOC-04-05 处理JavaScript指令

本章进一步扩展了WebViewSample程序并解释如何在JavaFX代码中调用JavaScript指令。

WebEngine类提供了在当前HTML页面的上下文中执行脚本的API。

5.1 理解executeScript方法

WebEngine类的executeScript方法能够执行在加载的HTML页面声明的任何JavaScript指令。使用下面的代码在调用网页引擎上的这个方法:webEngine.executeScript(“<function name>”);。

该方法的执行结果会按下面的规则转化为java.lang.Object实例:

● JavaScript的Int32会被转化为lang.Integer

● JavaScript的number会被转化为lang.Double

● JavaScript的string会被转化为lang.String

● JavaScript的boolean会被转化为lang.Boolean

参考WebEngine类的API文档来了解更多关于转化结果的信息。

5.2 在JavaFX代码中调用JavaScript指令

扩展WebViewSample程序用来介绍一个帮助文件并执行一句JavaScript指令,该指令负责切换帮助文档中的主题列表。创建Help工具栏项并指向help.html文件,用户可以预览关于Oracle网站的的参考资料。

将如下所示的help.html文件添加到WebViewSample程序中。

例5-1 help.html文件

例5-2中展示了修改后的程序代码,在该代码中创建了Help工具栏项和一个附加的按钮来隐藏/显示帮助主题。只有当选择了Help页面时该按钮才会加到工具栏中。

例5-2 添加切换帮助主题按钮

加载过程总是在后台线程中完成。初始化加载过程的方法会在调度了后台线程之后马上返回。getLoadWorker()方法提供了Worker接口的一个实例,可以用来跟踪加载过程。如果帮助页面的进度状态是SUCCEEDED,Toggle Help Topics按钮会被添加到工具栏,如图5-1所示。

图5-1 切换帮助主题按钮

4_5_1 webview-help-toggle

例5-3中展示的setOnAction方法为Toggle Help Topics按钮定义了行为。

例5-3 执行JavaScript指令

当用户点击Toggle Help Topics按钮时,executeScript方法会为help.html页面执行名为toggle_visibilety的JavaScript函数,然后帮助主题就会出现,如图5-2所示。用户再点击一次,toggle_visibility函数会隐藏掉主题列表。

图5-2 展示帮助主题

4_5_2 webview-show-help

 

打赏一下
支付宝
微信
除非注明,博客文章均为原创,转载请标明文章地址
本文地址: http://www.javafxchina.net/blog/2015/07/html_javascript/
百度已收录