【问题标题】:Call JavaScript function in AbstractJavaScriptExtension class在 AbstractJavaScriptExtension 类中调用 JavaScript 函数
【发布时间】:2015-04-23 08:30:04
【问题描述】:

我想在 vaadin 中调用 javascript 函数。它是AbstractJavaScriptExtensionthis.callFunction("removeNode"); 不会触发 javascript 函数。这是一个错误还是我做错了什么?

@Override
public void remove() {
    super.remove();
    fireRemoveNode();
    this.callFunction("removeNode");
}

JavaScript 代码:

window.vaadin_components_graph_Node = function() {
        var self = this;
        var state = this.getState();

...

        this.removeNode = function() {
            console.log("CALL FUNCTION", "remove node")
            $(node).remove();
        }
};

【问题讨论】:

  • 乍一看,这一切看起来都是正确的。组件一般都在工作(又名:没有更深层次的问题)?还要说:您知道,如果没有请求的上下文(或可能启用推送),服务器将不会在客户端上自行调用此函数

标签: javascript jquery vaadin


【解决方案1】:

AbstractJavaScriptExtension 被移除后,您将无法调用 JavaScript 函数。尝试将此 JavaScript 调用放到另一个方法中,不要调用 remove();

【讨论】:

    【解决方案2】:

    虽然 user1411778 的答案是正确的,但您也可以使用以下方式调用 JavaScript 函数:

    JavaScript.getCurrent().execute("removeNode()");
    

    它应该始终有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      • 2013-02-02
      • 2013-01-15
      • 1970-01-01
      • 1970-01-01
      • 2012-09-28
      • 2018-08-13
      相关资源
      最近更新 更多