読者です 読者をやめる 読者になる 読者になる

Wicket7 の native Websocket を使う場合、jQuery UI 使用は注意。

Wicket

Wicket7 の native Websocket を使うともう1つ、煩わしいことが見つかりました。

Websocket 接続するページのHTMLの head タグの最後に、jQuery 設定として以下のように指定されてしまうのです。

<script type="text/javascript" src="./wicket/resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-1.12.4-ver-1489464145840.js"></script>
<script type="text/javascript" src="./wicket/resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-event-jquery-ver-1489464145840.js"></script>
<script type="text/javascript" src="./wicket/resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery-ver-1489464145840.js"></script>
<script type="text/javascript" src="./wicket/resource/org.apache.wicket.protocol.ws.api.WicketWebSocketJQueryResourceReference/res/js/wicket-websocket-jquery-ver-1489464457872.js"></script>
<script type="text/javascript" >
/*<![CDATA[*/
Wicket.Event.add(window, "domready", function(event) { 
;(function(undefined) {
   'use strict';

   if (typeof(Wicket.WebSocket.appName) === "undefined") {
      jQuery.extend(Wicket.WebSocket, { pageId: 28, resourceName: '',
         baseUrl: 'feed?28', contextPath: '/sample', appName: 'WebSocketFilter',
         filterPrefix: '' });
      Wicket.WebSocket.createDefaultConnection();
   }
})();
;
Wicket.Event.publish(Wicket.Event.Topic.AJAX_HANDLERS_BOUND);
;});
/*]]>*/
</script>
</head>

すると、Page クラスコーディング側で、jquery-2.1.4.min.js と jquery-ui-1.11.x.min.js を指定しても
head タグの最後が、上記のようにされてしまっては、任意の jQuery-UI の Widget を実行できない等の障害が起きてしまう。

仕方なく、Page の html で、ルール違反だが body タグの前に、jquery-2.1.4.min.js と jquery-ui-1.11.x.min.js の再読み込みを
記述することで、 任意の jQuery-UI の Widget をできるようにする。

<script type="text/javascript" src="/sample/js/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="/sample/js/jquery-ui-1.11.4.custom.min.js"></script>
<body>