1. java通过jsni调用内部js

  1. Button button =newButton("java调用内部jsni的js方法");
  2. button.addClickHandler(newClickHandler() {
  3. @Override
  4. publicvoidonClick(ClickEvent event) {
  5. //gwt中java调用js方法
  6. execute("js方法被调用");
  7. }
  8. });
  9. /**
  10. * JSNI方法
  11. * @param id
  12. */
  13. publicstaticnativevoidexecute(String str)/*-{
  14. alert(str);
  15. }-*/;

2. 内部js通过jsni调用java方法

  1. Button button1 =newButton("内部jsni的js调用java方法");
  2. button1.addClickHandler(newClickHandler() {
  3. @Override
  4. publicvoidonClick(ClickEvent event) {
  5. //gwt中java调用js方法
  6. executeJs("java方法被调用");
  7. }
  8. });
  9. /**
  10. * JSNI方法,  里面调用java方法 javaAlert
  11. * @param id
  12. */
  13. publicstaticnativevoidexecuteJs(String str)/*-{
  14. @com.hw.client.TestCall::javaAlert(Ljava/lang/String;)(str);
  15. }-*/;

3.gwt中java方法调用外部js

在gwt工程的index.html中加入外部方法

  1. <mce:script language="JavaScript"><!--
  2. function callOutJs(str){
  3. alert('此处是外部js方法:'+ str);
  4. }
  5. // --></mce:script>

然后在onModuleLoad中java方法进行调用

  1. Button button2 =newButton("JAVA调用外部js");
  2. button2.addClickHandler(newClickHandler() {
  3. @Override
  4. publicvoidonClick(ClickEvent event) {
  5. //gwt中java调用js方法
  6. callOutJS("外部js被调用");
  7. }
  8. });
  9. /**
  10. * JSNI方法 调用外部js方法
  11. * @param id
  12. */
  13. publicstaticnativevoidcallOutJS(String str)/*-{
  14. $wnd.callOutJs(str);
  15. }-*/;

4.  外部js调用gwt的java方法

在onModuleLoad方法中调用  outJsCallGwt();

outJsCallGwt方法为

  1. /**
  2. * 需要被调用的js方法
  3. * @param id
  4. */
  5. privatestaticnativevoidoutJsCallGwt()/*-{
  6. $wnd.outJsCallGwt = function (str) {
  7. alert("此处是gwt:"+ str);
  8. };
  9. }-*/;

在index.html中加入按钮以调用

  1. <button οnclick="outJsCallGwt('外部按钮被点击')">点击</button>

现贴出application和index.html代码

  1. packagecom.hw.client;
  2. importcom.google.gwt.core.client.EntryPoint;
  3. importcom.google.gwt.event.dom.client.ClickEvent;
  4. importcom.google.gwt.event.dom.client.ClickHandler;
  5. importcom.google.gwt.user.client.Window;
  6. importcom.google.gwt.user.client.ui.Button;
  7. importcom.google.gwt.user.client.ui.RootPanel;
  8. publicclassTestCallimplementsEntryPoint {
  9. publicvoidonModuleLoad() {
  10. Button button = newButton("java调用内部jsni的js方法");
  11. button.addClickHandler(newClickHandler() {
  12. @Override
  13. publicvoidonClick(ClickEvent event) {
  14. //gwt中java调用js方法
  15. execute("js方法被调用");
  16. }
  17. });
  18. Button button1 = newButton("内部jsni的js调用java方法");
  19. button1.addClickHandler(newClickHandler() {
  20. @Override
  21. publicvoidonClick(ClickEvent event) {
  22. //gwt中java调用js方法
  23. executeJs("java方法被调用");
  24. }
  25. });
  26. Button button2 = newButton("JAVA调用外部js");
  27. button2.addClickHandler(newClickHandler() {
  28. @Override
  29. publicvoidonClick(ClickEvent event) {
  30. //gwt中java调用js方法
  31. callOutJS("外部js被调用");
  32. }
  33. });
  34. RootPanel.get().add(button);
  35. RootPanel.get().add(button1);
  36. RootPanel.get().add(button2);
  37. outJsCallGwt();
  38. }
  39. /**
  40. * JSNI方法 调用外部js方法
  41. * @param id
  42. */
  43. publicstaticnativevoidcallOutJS(String str)/*-{
  44. $wnd.callOutJs(str);
  45. }-*/;
  46. /**
  47. * JSNI方法
  48. * @param id
  49. */
  50. publicstaticnativevoidexecute(String str)/*-{
  51. alert(str);
  52. }-*/;
  53. /**
  54. * JSNI方法,  里面调用java方法 javaAlert
  55. * @param id
  56. */
  57. publicstaticnativevoidexecuteJs(String str)/*-{
  58. @com.hw.client.TestCall::javaAlert(Ljava/lang/String;)(str);
  59. }-*/;
  60. /**
  61. * 被js方法调用
  62. * @param id
  63. */
  64. publicstaticvoidjavaAlert(String str){
  65. Window.alert(str);
  66. }
  67. /**
  68. * 需要被调用的js方法
  69. * @param id
  70. */
  71. privatestaticnativevoidoutJsCallGwt()/*-{
  72. $wnd.outJsCallGwt = function (str) {
  73. alert("此处是gwt:"+ str);
  74. };
  75. }-*/;
  76. }
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <metahttp-equiv="content-type"content="text/html; charset=UTF-8">
  5. <linktype="text/css"rel="stylesheet"href="TestCall.css"mce_href="TestCall.css">
  6. <title>Web Application Starter Project</title>
  7. <mce:scriptlanguage=JavaScript><!--
  8. function callOutJs(str){
  9. alert('此处是外部js方法:'+ str);
  10. }
  11. // --></mce:script>
  12. <mce:scripttype="text/javascript"language="javascript"src="testcall/testcall.nocache.js"mce_src="testcall/testcall.nocache.js"></mce:script>
  13. </head>
  14. <body>
  15. <!-- OPTIONAL: include this if you want history support -->
  16. <iframesrc="javascript:''"mce_src="javascript:''"id="__gwt_historyFrame"tabIndex='-1'style="position:absolute;width:0;height:0;border:0"></iframe>
  17. <!-- RECOMMENDED if your web app will not function without JavaScript enabled -->
  18. <noscript>
  19. <divstyle="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">
  20. Your web browser must have JavaScript enabled
  21. in order for this application to display correctly.
  22. </div>
  23. </noscript>
  24. <h1>Web Application Starter Project</h1>
  25. <tablealign="center">
  26. <tr>
  27. <tdcolspan="2"style="font-weight:bold;"mce_style="font-weight:bold;">Please enter your name:</td>
  28. </tr>
  29. <tr>
  30. <buttononclick="outJsCallGwt('外部按钮被点击')">点击</button>
  31. <tdid="nameFieldContainer"></td>
  32. <tdid="sendButtonContainer"></td>
  33. </tr>
  34. <tr>
  35. <tdcolspan="2"style="color:red;"mce_style="color:red;"id="errorLabelContainer"></td>
  36. </tr>
  37. </table>
  38. </body>
  39. </html>

备注: 以上html代码中<mce:script  应该为<script 由于csdn代码编辑器自动改变了值

  1. <scriptlanguage=JavaScript>
  2. function callOutJs(str){
  3. alert('此处是外部js方法:'+ str);
  4. }
  5. <script>

java and js and jsni相关推荐

  1. return true Java_[Java教程]js中return,return true,return false的用法及区别

    [Java教程]js中return,return true,return false的用法及区别 0 2015-11-16 23:00:03 1.语法及返回方式 ①返回控制与函数结果 语法为:retu ...

  2. java中刷新页面的js,[Java教程]js页面刷新之实现框架内外刷新(整体、局部)

    [Java教程]js页面刷新之实现框架内外刷新(整体.局部) 0 2016-10-12 12:00:56 这次总结的是框架刷新: 框架内外的按钮均可以定义网页重定向, 框架内部页面的按钮可以实现局部刷 ...

  3. java创建node类型数据类型_[Java教程]js DOM Node类型

    [Java教程]js DOM Node类型 0 2015-12-18 16:00:08 DOM(文档对象模型)是针对HTML和 DOM可以将任何HTML或 以下面为例: My article Hell ...

  4. java与js交互,相互调用传参

    随着前端技术的发展与H5的广泛使用,移动端采用native+h5的方式越来越多了,对于Android来说就涉及到java与js的交互,相互调用传参等.下面就来看一下java与js交互的简单demo. ...

  5. android java 调用js,Android中Java和JavaScript交互实例

    Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本.本文将介绍如何实现Java代码和Javascript代码的相互调用. 如 ...

  6. JavaFX中WebView的java与JS代码互相调用

    java代码 package main;import javafx.application.Application; import javafx.beans.value.ObservableValue ...

  7. java 调用 js性能_太快了,太变态了:什么会影响Java中的方法调用性能?

    java 调用 js性能 那么这是怎么回事? 让我们从一个简短的故事开始. 几周前,我提议对Java核心libs邮件列表进行更改 ,以覆盖当前final一些方法. 这刺激了一些讨论主题-其中之一是其中 ...

  8. java js跳出循环_[Java教程]js循环的总结

    [Java教程]js循环的总结 0 2016-10-07 15:00:14 js原生的循环有两种,一般的for循环和for...in循环.还有一种常用jQuery.each()循环. 一. js原生循 ...

  9. java 返回js_如何基于java或js获取URL返回状态码

    这篇文章主要介绍了如何基于java或js获取URL返回状态码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参fgLAeaGAH考下 描述:使用java或者 ...

最新文章

  1. 未处理的异常: 0xC0000235: 由句柄所调用的 NtClose 已使用 NtSetInformationObject 以防止关闭。...
  2. STM32调试过程中,读保护,写保护造成的无法擦写芯片问题的解决办法和相关讨论
  3. HDMI视频光端机传输故障如何调试?
  4. eclipse java ui,Eclipse Forms筹划漂亮UI之高级组件[Java编程]
  5. frp ---- golang编写的内网穿透工具简介
  6. 小米手机困境,米粉伤心,黄牛伤钱
  7. 手机恶意软件激增,使用代码签名证书防范恶意侵害
  8. 推荐腾讯最新重磅开源项目!
  9. POJ-2031-Building a Space Station
  10. html语言星号,DIV+CSS 星号*
  11. python做var模型_在Python中使用pandas statsmodels的VAR模型
  12. 【Linux】bert-base-cased 不在缓存需要从 s3 上下载的问题
  13. 《自控》学习笔记一——自动控制的一般概念(一)
  14. Fedora的U盘无法格式化
  15. 今日金融词汇---为什么股票前面会有个DR
  16. html5播放mp4视频代码
  17. (完整源码)GPS系统源码,GPSBDpro——SIM卡状态查询
  18. 【Cocos2d-x 3.x】 动作类Action源码分析
  19. System.Drawing.Color的颜色对照表
  20. 静态方法和非静态方法的区别JAVA

热门文章

  1. 小米手机5完美卡刷开发版获得ROOT超级权限的教程
  2. 力扣LeetCode刷题心得之Python 找到最接近 0 的数字
  3. 中兴c600olt数据配置_中兴OLT开局数据配置、工程规范、版本升级介绍.ppt
  4. CVE-2021-4034 Pkexec LPE原理精析
  5. 在manjaro中开启多VLAN,配置永久静态IP,使用systemd-networkd配置
  6. 记录一次与autorun.inf病毒的较量
  7. 用Java写最简易版的银行系统
  8. HTTP live streaming 媒体流架构
  9. VOC和COCO数据集的介绍和转换
  10. 数据库系统概论(第五版) 王珊 第二章课后习题答案