0

我有一个面板,用于使用Wicket-Jquery-Kendo-ui的富文本编辑器。如果我将面板直接添加到页面加载的页面中,一切正常。但是,如果我动态添加面板,面板将无法加载所需的 javascript:

 Wicket.Ajax.Call.processEvaluation: Exception evaluating javascript: TypeError: undefined is not a function, text: (function(){Wicket.Ajax.ajax({"f":"forma8","u":"./page?4-1.IBehaviorListener.0-form-addFieldPanel-form-fieldPanel-form-rte-form-container-button","e":"click","c":"buttona9","sc":"addFieldPanel:form:fieldPanel:form:rte:form:container:button","m":"POST"});})();(function(){jQuery('#editora7').kendoEditor({ "encoded": false });})();

我通过使用我扩展的抽象面板并使用 replaceWith() 方法并将面板添加回目标来处理添加。这种方法适用于我正在使用的所有其他面板,但是为 RTE 新增的 Javascript 是问题出现的地方。如果我刷新页面,或者如果我将整个页面添加到目标,那么它将呈现,但这显然不理想,因为我使用 AJAX 是有原因的。

任何关于如何正确添加 javascript 的想法将不胜感激。

4

1 回答 1

0

在重新评估我的过程后,我找到了解决方案。由于我的项目设置,我在实例化时将所有 javascript 加载到应用程序中,尽管这些 javascript 文件仅用于此面板。为了解决这个问题,我从批量加载中删除了 javascript,并将以下方法添加到我的面板中:

    @Override
public void renderHead(IHeaderResponse response)
{
    super.renderHead(response);

    response.render(JavaScriptHeaderItem.forUrl("http://cdn.kendostatic.com/2014.1.416/js/kendo.upload.min.js"));
    response.render(JavaScriptHeaderItem.forUrl("http://cdn.kendostatic.com/2014.1.416/js/kendo.imagebrowser.min.js"));
    response.render(JavaScriptHeaderItem.forUrl("http://cdn.kendostatic.com/2014.1.416/js/kendo.editor.min.js"));
}

希望这可能对其他人有所帮助。

于 2014-07-22T13:00:56.053 回答