com.vaadin.ui.JavaScript.addFunction()方法的使用及代码示例

x33g5p2x  于2022-01-22 转载在 JavaScript  
字(2.6k)|赞(0)|评价(0)|浏览(85)

本文整理了Java中com.vaadin.ui.JavaScript.addFunction()方法的一些代码示例,展示了JavaScript.addFunction()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。JavaScript.addFunction()方法的具体详情如下:
包路径:com.vaadin.ui.JavaScript
类名称:JavaScript
方法名:addFunction

JavaScript.addFunction介绍

[英]Add a new function to the global JavaScript namespace (i.e. the window object). The call method in the passed JavaScriptFunction object will be invoked with the same parameters whenever the JavaScript function is called in the browser. A function added with the name "myFunction" can thus be invoked with the following JavaScript code: window.myFunction(argument1, argument2). If the name parameter contains dots, simple objects are created on demand to allow calling the function using the same name (e.g. window.myObject.myFunction).
[中]向全局JavaScript命名空间(即窗口对象)添加新函数。在浏览器中调用JavaScript函数时,传递的JavaScriptFunction对象中的call方法将使用相同的参数进行调用。因此,可以使用以下JavaScript代码调用名为"myFunction"的函数:window.myFunction(argument1, argument2)。如果name参数包含点,则会根据需要创建简单对象,以允许使用相同的名称调用函数(例如:window.myObject.myFunction)。

代码示例

代码示例来源:origin: viritin/viritin

public static void detectCookieValue(String key, final Callback callback) {
  final String callbackid = "viritincookiecb"+UUID.randomUUID().toString().substring(0,8);
  JavaScript.getCurrent().addFunction(callbackid, new JavaScriptFunction() {
    private static final long serialVersionUID = -3426072590182105863L;
    @Override
    public void call(JsonArray arguments) {
      JavaScript.getCurrent().removeFunction(callbackid);
      if(arguments.length() == 0) {
        callback.onValueDetected(null);
      } else {
        callback.onValueDetected(arguments.getString(0));
      }
    }
  });
  JavaScript.getCurrent().execute(String.format(
      "var nameEQ = \"%2$s=\";var ca = document.cookie.split(';');for(var i=0;i < ca.length;i++) {var c = ca[i];while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) {%1$s( c.substring(nameEQ.length,c.length)); return;};} %1$s();",
      callbackid,key
  ));
}

代码示例来源:origin: jreznot/electron-java-app

private void initElectronApi() {
  JavaScript js = getPage().getJavaScript();
  js.addFunction("appMenuItemTriggered", arguments -> {
    if (arguments.length() == 1 && arguments.get(0) instanceof JsonString) {
      String menuId = arguments.get(0).asString();
      if ("About".equals(menuId)) {
        onMenuAbout();
      } else if ("Exit".equals(menuId)) {
        onWindowExit();
      }
    }
  });
  js.addFunction("appWindowExit", arguments -> onWindowExit());
  Page.Styles styles = getPage().getStyles();
  try {
    InputStream resource = MainUI.class.getResourceAsStream(
        "/org/strangeway/electronvaadin/resources/electron.css");
    styles.add(IOUtils.toString(resource, StandardCharsets.UTF_8));
  } catch (IOException ignored) {
  }
}

相关文章