我有一个面板,用于使用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的任何想法都将非常感激。
答案 0 :(得分: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"));
}
希望这可能有助于其他人。