Win8.1のHTAでAngularJS使ってみる
Win8.1のHTAでAngularJS使ってみる
評価版を導入していろいろやってみるつもりが捗っていません。 今回は次の背景から、HTA+AngularJSをWin8.1で使ってみました。
Win8.1でもHTML Application(HTA)使うだろう
AngularJSは、そのままでは使えませんでした。 どうもmshtaで制限されているように見えます。
評価版なのでブラウザ(Chrome)入れるところからやりました。
それから、vimですね。
やっとサンプルを作りました。
<!doctype html> <html lang="ja" ng-app> <head> <meta charset="utf-8"> <title>angular-hta</title> <script src="angular.min.js"></script> </head> <body> <div> <label>名前:</label> <input type="text" ng-model="yourname" placeholder="名前を入力してください"> <hr /> <span>こんちは {{yourname}}!!</span> </div> </body> </html>
これでHTAとして保存して実行してみたのですが… js部分がまるで動いてないのです。
ぐぐってみると、どうやらmshta.exeのバージョンが云々というのが。
そこ?という感じですが、実際見てみるとバージョンは11.0になっているので実際に実行されているIEのバージョンが原因なのか?
とりあえず以下を挿入しました。
<meta http-equiv="X-UA-Compatible" Content="IE=edge">
これでなぜだかJS部分が動作するようになりました。
どういうことなんだ?
深堀が必要なような、そうでないような。
AngularJSとの兼ね合いでもなさそうな気もするので、ほかのJSもやってみました。
DOMを直接いじるようなやつです。
<!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> <title>JS sample</title> </head> <body> <button id="samplebtn">click</button> <div id="sample"></div> </body> <script type="text/javascript"> document.getElementById("samplebtn").attachEvent('onclick', function(){ document.getElementById("sample").innerHTML = "こんにちは!"; }); </script> </html>
これは、何もしなくても動作しました。
あとはJS部分を外に出してみる、というところがどうかですね。
しかし、このレベルのものだと別ファイルにしても問題ないです。
そうすると、AngularJSとの兼ね合いっぽいですね。