バージョンアップするとColdFusionのAjax機能が動作しない場合の確認点

ColdFusionをバージョンアップすると、これまで動作していたAjax機能が動かない場合があります。例えば、以下のような状況です

  • 入力欄のカレンダー(<cfinput type="datefiield" や cfcalender)が表示されない
  • cftreeやcfmenuが機能しない
  • cfajaxproxyでcfcを呼び出せない
  • cfchartのクライアント(HTML+JSチャートが表示されない)

この原因としては、以下の2つがあげられます。それぞれの確認点や対応方法について説明します。

  1. Ajax機能の動作に必要なJavaScriptがインストールされていない
    • ColdFusion 2016から、一部のAjax機能(autosuggest, <cfinput type="datefield">,cfcalender, cftree)などが非推奨・非サポートとなりました。そのため、ColdFusion 2016の更新版のインストーラー、2018、2021では、初期状態でそれらを動作するためのJavaScriptライブラリが含まれておりません。ColdFusion 2021や2018で引き続きそれらの機能を使用したい場合は、下記のサイトから、YUI、Spryライブラリをダウンロードして、手動で所定の場所に配置する必要があります。

      【参考手順】
      1. https://helpx.adobe.com/jp/coldfusion/deprecated-features.html にアクセスします
      2. 上記で紹介したページ下部にある「YUI and Spry(YUIとSpry)」よりダウンロード可能なファイル(Checksumが書かれているyui.zip とspry.zip)をダウンロードします
      3. ダウンロードしたライブラリを解凍ソフトを使い解凍します
      4. 解凍された wwwroot フォルダを <cf_root>/cfusion 内に配置(上書き)します
      5. 動作しないAjax機能の動作を確認します。ブラウザの「開発者ツール」等を使用すると、『ネットワーク』でJavaScriptの読み込みを確認できますので、ファイルが読み込みできているかを確認してください
         
  2. Internet Explorerの互換性表示が有効になっている

    • 以前のバージョンで動作していたcfajaxproxyやAjax機能が、新しいColdFusionバージョンでは動作しないということがあります。以前のシステムをそのままバージョンアップしたため、使用するブラウザがChromeやFirefox、Edgeではなく、引き続きInternet Explorerであることが特徴です。Internet Explorerには、互換性表示機能があります。この機能を有効にしている場合、古いバージョンのInternet Explorer 7 や 5 相当の動作となり、新しいColdFusionバージョンに同梱されているJavaScriptが動作しなくなります。

    • そのため、Internet Explorerで互換性表示を無効にすると、IE10または11相当に変更しないと、カレンダーやチャート、CFAJAXPROXYが動作しなくなります。IISにヘッダーを付加している場合は、そのバージョンを変更するか、ヘッダーを無効にします。ColdFusion側で対応するには、<cfheader>を使用して、ブラウザのレスポンスヘッダに「X-UA-Compatible」を指定する事で互換表示時のIEのバージョンを変更できます。

      <cfheader name="X-UA-Compatible" value="ie=10">
      ※Application.cfmやApplication.cfcに記載することで、そのアプリケーションのすべてのColdFusionページでIEの互換表示バージョンを指定するなどが可能です 

    • また、ActiveDirectoryなどでブラウザの設定を行っている場合もあるようです。特にIntenet Explorerの互換性表示には、「エンタープライズ」という設定があり、これを有効にしていると、Internet Explorer 8までの互換表示の制限となるため、多くのColdFusionのAjax機能が動作しなくなります。この設定は、IE8までしか提供されなかったWindows XP向けに作成されたWebサイトをIE11で開いた際の互換性を向上させるためのもののようです
      https://hebikuzure.wordpress.com/2014/11/13/ie11-enterprise-mode-improvement/
      この設定は古い機能であり、ColdFusion 2021や2018に搭載されているJavaScriptに対応ができないので、デフォルトのモード(デスクトップ)にした上で<cfheader name="X-UA-Compatible" value="IE=11">を適用してください。

 


 


記事公開日:2021年03月22日
最終更新日:2021年03月22日


x

Sample Modal Window

This is just a sample…

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit iaculis libero sed tristique. Quisque mollis dolor non tellus placerat vitae sodales lectus porta. Curabitur ut suscipit tellus. Maecenas rhoncus, ante vitae vehicula vestibulum, metus sapien dapibus tellus, et mattis dolor neque vitae nisl. Nullam eleifend ultrices ipsum eget pretium. Curabitur semper metus ut ante adipiscing nec volutpat sem rutrum. Nullam a nisi lacus, non interdum ante. Vivamus ante augue, commodo vel egestas sed, pharetra nec dui. Quisque sed tellus felis. Donec ipsum mauris, sagittis eu accumsan in, aliquam non ipsum.

Vestibulum tempor nunc nec felis scelerisque eget elementum erat dignissim. Ut vel ipsum mollis orci venenatis luctus. Aenean vehicula quam vel quam porttitor ac iaculis elit pulvinar. Proin consequat, ipsum eu venenatis semper, justo turpis posuere tortor, ac placerat metus nisl et lectus. Nulla cursus dui id nunc ullamcorper sed semper nisl lobortis. Aliquam erat volutpat. Phasellus arcu ante, imperdiet in ornare sed, laoreet eu massa.