2

私はオフラインの HTML アプリケーションをコーディングしていて、three.js が (Win7、IE10) と連携するのに適したライブラリであることを発見しました。

IE10 内でいくつかのサンプル r59 スクリプト (私が使用したい機能を保持している) をテストしたところ、問題なく動作しました。

これらのスクリプトは次のとおりです。

「css3d_periodictable.html」と「canvas_particles_random.html」

しかし、これらのサンプル スクリプトの名前を ".html" から ".hta" に変更すると (コーディング プロジェクト全体が HTA プロジェクトです)、同じ (そうでなければ変更されていない) サンプル スクリプトはエラーをスローし、機能しません。

これは私が通常経験することではないので、ライブラリは MSHTA.EXE でドロップされる IE 機能に依存しているように思えます...

私の質問: これは修正できるもの (ブラウザー チェック条件、fe) ですか、それとも HTA として欠落しているいくつかのコア機能ですか?

よろしくお願いいたします。

オリバー

4

1 に答える 1

2

さて、問題は理解できました...解決策は難しいです。

HTML アプリケーション (HTA) 内で Three.js コードを使用する場合、HTA は既定で IE7 クイック モードを使用します。次の行を Three.js HTA に簡単に追加できます。

<meta http-equiv="X-UA-Compatible" content="IE=IE10" />

しかし、その後、MS IE チームが「標準にもっと集中する」ことを望んでいるため、HTA マークアップ (windowstate、applicationname - ほんの数例を挙げると) は理解されなくなりました :-(

しかし、うまくいくトリックがあります...

必要なすべてのマークアップ コードを使用して、空の HTA を作成します。次に例を示します。

<hta:application windowstate="minimize" border="none" icon="myIcon.ico" />

ここでは IE10 X-UA-Compatible メタ ステートメントを使用しないでください。

THREE.js HTML ページを document.location.href にロードする onload JavaScript 関数をその HTA 内に作成します。

ここで説明されているように (social.msdn.microsoft.com)

HTML ページには、すべての THREE.js コードと meta ステートメントが含まれている必要があります (この投稿の冒頭を参照)。魅力のように機能します。

私を正しい方向に向けてくれたTeemuに感謝します!

于 2013-07-31T12:24:41.417 に答える