Closed tabatas closed 10 years ago
対応しました。 原因は、minifyされたコードの一部にiOS7.0.4で正しく解釈されない部分があることが原因でした。 iOS7.0.4では、以下のような『if文の条件式内の論理値と論理積を含む条件式との比較』が正しく判定されません。
if (false !== (null && 'hoge')) {
alert('success');
} else {
alert('error'); // iOS7.0.4だとelse文が実行される
}
hifiveのminifyしたコードの、イベントハンドラをバインドするかどうかの条件式が上記のようなパターンに当てはまってしまい、iOS7.0.4でイベントハンドラのバインドが正しく行われなくなっていました。
挙動が変わらないように、minifyした時に上記パターンにならないように(3項演算子になるように)ソースコードを修正して、対応しました。
iOS7.0.3、iOS7.0.4でhifive1.1.13.jsのmin版を使用すると、コントローラーからDOM要素にイベントをバインドしても処理が実行されません。 iOS6.1.2、iOS7.1.0、Android4.1.2では正常に実行されていました。また、デバッグ版のh5-1.1.13.dev.jsではどのOSでも正常に実行しました。 なお、controllerのみを含めたカスタムビルドでも同様の症状が起こりました。
h5-1.1.13.js min版使用時に 正しく動作したOS iOS 6.1.2 iOS 7.1.0 Android 4.1.2 動作しなかったOS iOS 7.0.3 iOS 7.0.4
HTML
JavaScript test.js