我在Wicket中有一个页面会抛出一个javascript错误,因为它不会在客户端加载Wicket库。我不知道为什么。生成的客户端代码如下:
Wicket.Event.add(window, "domready", function(event) {
Wicket.Ajax.ajax({"u":"./web.TaskPage?4-1.0-modal~javascript~error~close","c":"modal_javascript_error_close5","e":"click"});
.
. (more code)
.
}
在服务器端,我有一个链接按钮:
public static Component createCloseBt() {
AjaxLink<String> modalCloseBt = new AjaxLink<String>("modal-javascript-error-close") {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
IRSPage.closeModal(target);
}
};
return modalCloseBt;
}
我得到的错误是:
web.TaskPage?4:148 Uncaught TypeError: 无法阅读财产&#39; Ajax&#39;未定义的 在HTMLDocument。 (web.TaskPage 4:148) 在火上(jquery-1.12.4-ver-1494329056398.js:3232) at Object.fireWith [as resolveWith](jquery-1.12.4-ver-1494329056398.js:3362) 在Function.ready(jquery-1.12.4-ver-1494329056398.js:3582) 在HTMLDocument.completed(jquery-1.12.4-ver-1494329056398.js:3617)
我应该检查什么?为什么在这一点上我没有Wicket.Ajax.ajax?
感谢&#39; S
答案 0 :(得分:0)
我看到的唯一原因是你在YourApplication.java中使用FilteringHeaderResponse。
如果您想将JavaScript文件放在页面HTML的底部(</body>
之前),则使用FilteringHeaderResponse。如果您过滤掉了JavaScriptReferenceHeaderItems,但您也没有过滤掉OnDomReadyHeaderItem / OnLoadHeaderItem / OnEventHeaderItem然后可能发生这种情况。
答案 1 :(得分:0)
好吧,我发现了问题。这是一个行为组件,添加了覆盖Wicket对象的javascript代码。 1.5.5版本需要这样,但现在不需要。