ラベル HTML5 の投稿を表示しています。 すべての投稿を表示
ラベル HTML5 の投稿を表示しています。 すべての投稿を表示

2017年4月22日土曜日

HTML5でGetObjectを利用する方法

msdnに記載されている通り、GetObject関数はIE9(標準モード)以降ではサポートされていません。 → MSDN:GetObject関数

HTML5を利用するためにHTAでレンダリングモードを変更するとGetObjectが使えなくなり、WMIからデータを取得したりすることができません。
HTML5を利用しつつGetObjectを使うためのサンプルを作成しました。

2017年4月17日月曜日

HTML5の機能で画像ファイルを埋め込みイメージタグに変換するサンプル

base64エンコードという処理をするとHTMLファイルに画像ファイルなどを埋め込むことが可能になります。
そのbase64エンコードをやってくれるwebサービスなどもありますが、ブラウザでHTML5の機能だけでやることも可能です。
その変換用サンプルを作成しました。

2016年11月2日水曜日

WebWorkerのpostMessageは非同期?

先日サンプルを作成して比較した結果、Workerスレッドの方がわずかに速いという結果になったのですが、数回分の試験データを比較した時に気になった点がありました。

タイトルの通り、postMessageは非同期なのか?ということが気になったので、それをプログラムで動作確認しました。


2016年10月28日金曜日

contentEditableでリッチテキストエディタ

HTML5では全ての要素でcontentEditableプロパティが使えます。
それを利用して「リッチテキスト」を作成するプログラムを作りました。
JavaScriptが扱える人なら容易に機能を拡張することができます。

何気なく思いついて作ってみたけど、なかなかの拡張性で実用性が高そう。

2016年5月24日火曜日

WebWorkerをHTAで利用する

HTAでもマルチスレッドで処理できる。
WebWorkerを使ううえでの注意点(別スレッドからはDOMにアクセスできないなど)はブラウザで使用する場合と同じ。

「C:\app\WebWorker.hta」のようなローカルPathから起動された場合はtempフォルダ内に外部スクリプトを出力して、それがWorker用のスクリプトファイルとして利用される。

「\\PC名\共有フォルダ\WebWorker.hta」のようなPathから起動された場合はBlobが上記の代わり利用されます。

Blobは作成元のHTAファイルの文字コードに関係なく、(おそらく)UTF-16になるため、HTAファイルもUTF-16(メモ帳でいうところのUnicode・・・)で保存しておかないと、実行時に文字化けしてエラーが出ます。

ローカルPathから起動された場合はFileSystemObjectのCreateTextFileでスクリプトファイルを出力するので、そのファイルと作成元HTAの文字コードが一致していれば問題ないので何でも良いですが、Blobを使う状況になっても文字コードを変えなくても良いように、HTAファイルもUTF-16で保存してください。(下記サンプルソースではCreateTextFileの第3引数をtrueにしてスクリプトファイルもUTF-16で出力していますので、HTAファイルもUTF-16にしないとエラーになります)

HTML5とHTA:Applicationタグの併用

HTML5モードだとHTA:Applicationタグが無効になる。
そのためiconなどが設定できなくなるが、ラッパーを使用すれば併用できるようになる。
※ただし画面偏移可能になってしまうのでhta内部でリンクをクリックしたり、HTML5のD&D機能を使うつもりで画面上にファイルを入れると画面偏移してしまう。

2016年5月23日月曜日

FileAPIをHTAで利用するサンプル

FileAPIを使うと、画面上にドラッグ&ドロップされたファイルを扱える。
ただしフォルダは扱えない。下記サンプルにD&Dすると「typeを取得できませんでした」になる。
ファイルであってもPathは取得できないので、単一ファイルの入力に対して何かを返すアプリケーションを作る時だけ使える。

ちなみにHTML5以前のHTMLにiframeエレメントを入れて、その中にHTML5のページを表示してFileAPIを利用する…というのはブラウザでは可能。HTAでは不可。