今後のイントラネットプロジェクトにboilerplatejsを利用したいのですが、多くのマシンはまだIE8を搭載したWinXPです(大規模なFirefoxまたはChromeの展開の組織にはオプションがありません)。
私はすぐにhtml5shivを組み込んでみましたが、それは役に立たなかったようです。ルーティングまたは他の機能が機能していないようです。私はこれがやる価値があるかどうか、または誰かがそれにもっと時間を費やす前にこれを機能させようとしたかどうかを理解しようとしています。
今後のイントラネットプロジェクトにboilerplatejsを利用したいのですが、多くのマシンはまだIE8を搭載したWinXPです(大規模なFirefoxまたはChromeの展開の組織にはオプションがありません)。
私はすぐにhtml5shivを組み込んでみましたが、それは役に立たなかったようです。ルーティングまたは他の機能が機能していないようです。私はこれがやる価値があるかどうか、または誰かがそれにもっと時間を費やす前にこれを機能させようとしたかどうかを理解しようとしています。
あまり。それがh5bpのコードです
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
これらは、すなわち<9の優雅な劣化のための条件節です。
これが多くの人がie<9を使用するプロジェクトである場合は、xhtmlを使用する方がよいかもしれません...エンジニアリング上の考慮事項だけです
実際、遭遇する最も難しい問題は、boilerplatejsではなく外部ライブラリに関するものです。
具体的な調整は、アプリケーションで活用する機能によって異なりますが、最初に必要なのは、
<section>
これをあなたの<head>
セクションの中に入れてください:
<!--[if lt IE 9]>
<script type="text/javascript" charset="utf-8" src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<script type="text/javascript" charset="utf-8" src="http://cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js"></script>
<script type="text/javascript" charset="utf-8" src="http://explorercanvas.googlecode.com/svn/trunk/excanvas.js"></script>
<![endif]-->
このスニペットを使用すると、ルーティング、テーマ、およびi18nをサポートするboillerplatejsサンプルページが機能します。
次に、クリックカウンターの例では、ボタンを何度クリックしても勝てないことに気付くでしょう。これは、 clickCounter / clickmeLOTTERY_ACTIVITY
コンポーネントによって公開されたイベントが、 pubsub.jsライブラリのバグ(?)のためにリスナーに到達しないためです(私はしばらく前に問題を提出しました)。これを解決するには、libs \ pubsub \ pubsub-20120708.jsにパッチを適用し、変更します
params = (args.length > 1) ? Array.prototype.splice.call(args, 1) : []
IE8互換の呼び出しへ:
params = (args.length > 1) ? Array.prototype.splice.call(args, 1, args.length-1) : []
おめでとうございます...あなたは勝ちました!!!
バックボーンTODOモジュールの残りの問題の修正はあなたに任せます。元のコードをガイダンスとして使用できます。
要約すると、boilerplatejsは完全にIE8と互換性があり、非互換性はコアコードではなくサポートライブラリに起因します。
BoilerplateJSコアは、HTML5機能を使用して設計されていません。IE8でテストしたことはありませんが、いくつかの調整を加えることで、これは非常に可能であると思います。たとえば、ルーティングに使用されるライブラリであるcrossroadsJSがIE8と互換性がない場合でも、pathJSまたはIE8と互換性のある他のライブラリに簡単に置き換えることができます。