【问题标题】:Wicket: Cannot read property 'Ajax' of undefined检票口:无法读取未定义的属性“Ajax”
【发布时间】:2017-10-23 09:22:01
【问题描述】:

我在 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: 无法读取未定义的属性“Ajax” 在 HTML 文档。 (web.TaskPage?4:148) 着火(jquery-1.12.4-ver-1494329056398.js:3232) 在 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 ?

谢谢

【问题讨论】:

    标签: javascript ajax wicket


    【解决方案1】:

    嗯,我发现了问题。它是一个行为组件,添加了覆盖 Wicket 对象的 javascript 代码。 1.5.5 版本需要,但现在不需要。

    【讨论】:

      【解决方案2】:

      我看到的唯一原因是如果您在 YourApplication.java 中使用 FilteringHeaderResponse。

      FilteringHeaderResponse 用于当您想将 JavaScript 文件放在页面 HTML 的底部(就在 &lt;/body&gt; 之前。如果您过滤掉 JavaScriptReferenceHeaderItems 但您也没有过滤掉 OnDomReadyHeaderItem/OnLoadHeaderItem/OnEventHeaderItem那么这可能会发生。

      【讨论】:

      • 感谢您的回复,但我的应用程序中没有 FilteringHeaderResponse。
      • 如果您能够在迷你演示应用程序中重现它,请将其附加到 Wicket 的 JIRA 中的票证上!
      • 好的。我会尽力。另一页效果很好,所以我很困惑。我正在将应用程序从 wicket 1.5.5 迁移到 8。所以,我必须验证很多事情。
      猜你喜欢
      • 2021-12-13
      • 2023-03-07
      • 2016-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多