2017年2月1日水曜日

htaのscript内部で複数行文字列を扱う

ブラウザによってはECMAScript6の恩恵を受けてシンプルな書き方をすることもできますが、HTAでは今のところ利用できないので、以下の方法をよく利用してます。




ソース


実行画面



改行をエスケープする、という方法もあり、そちらも見た目がわりとシンプルな感じで好きですが、全ての行末に「\」を入れるのは面倒、かも…?

str = 'あああ\
あいうえお\
いいい'
confirm(str.replace(new RegExp(String.fromCharCode(9),'g'), '\n'))

HTAでHTML5の機能を利用する時のように、モードを変更すればスクリプトエンジンも動作モードが変わるらしいです。

私は新しいモードに適用されるデザインルールに対応できていないので、それさえクリアできれば移行したいんですが…従来のデザインルールで実現できるインターフェースを再現しようと努力するより、新しいデザインルールで実現できるインターフェースを基準にプログラムを設計できるようになる方がラクな気がしますが、いざ試してみるとどうしても従来の手法が使いたくなってしまいます。。

1 件のコメント:

  1. エスケープによる複数行文字列の扱いについてはgoogleのガイドラインでは禁止されている(いた?)らしいですがECMAScript5で標準化されたらしく、最終的には使用しても良い状況?
    http://qiita.com/koshihikari/items/f6a90d8a19bda831d879

    返信削除