私が取り組んでいる Web サイトにインタラクティブな (DOM リスナーなどとのアタッチとイベント処理) ベクトル グラフィックを表示する必要があります。SVG には W3C の推奨事項がありますが、この形式は Internet Explorer のサポートではまだ認識されていません (公開 Web サイトの場合)。IE は VML を処理しますが、ブラウザー (SVG と VML) に応じてキャンバスのような描画を行う JavaScript ライブラリーもあります - excanvas、Dojo Toolkit の GFX など。指定されたマークアップから SVG 画像を表示できるものはありませんが、それは素晴らしく、許容できます。
したがって、質問は実際にはいくつかの部分で構成されています。
- 特定のマークアップ (必須の SVG ではない) からベクター グラフィックスを表示し、DOM イベントにアタッチする可用性を提供するクロスブラウザー Javascript ライブラリはありますか?
- 存在しない場合、そのようなタスクを実行するのに最も適した最も人気のあるブラウザ組み込みテクノロジはどれですか? Flex/Flash、Java アプレットから選択できます。Windows ロックインのため、Silverlight はオプションではありません。
[編集]コメント/提案をありがとうございます。以下は、この問題に関する私のランダムなメモ/結論です。
- 私が必要とする対話性のレベルは、表示されているベクター画像で DOM イベント (マウスオーバー、マウスアウト、クリックなど) を検出する機能と、背景色の変更、ダイアログの表示などのそれらに反応する機能です。
- SVG 形式に固執するという考えは、最も人気のある IE を除く多くのブラウザーでネイティブであるため、非常に適切です。動的 SVG の表示をいくつか試した結果、IE バージョン 7 が最も問題があることがわかりました。ブラウザの非互換性のため、面倒が多すぎます。
- Cake は素晴らしい Javascript フレームワークのようですが、IE7 でサンプルを動作させることはできませんでした。
- Java アプレット - 高品質の SVG レンダラーである Apache Batik ライブラリを使用できると思っていたので、このアイデアが最も気に入りました。しかし、Batik は非常に大きなライブラリであり、数メガバイトのアプレットを展開する余裕はありません。
- Flexオプションを使い続けることにしました。素敵なベクター グラフィックス ライブラリDegrafaを見つけました。独自のマークアップ形式を使用しますが、SVG パス表記を認識します。そのため、私の場合、SVG を XSLT を使用して変換するか、解析するだけで簡単に変換できます。
[編集 2 ] さらにいくつかのコメントが表示されました。「Windows ロックイン」とは、Silverlight が Windows、より具体的には IE で通常実行される状況を意味することを明確にしたいと思います。他のシステムで受け入れられているソリューション (たとえば、Flash や Java アプレットなど) であるとは思えません。はい、どのシステムでも Silverlight アプリを起動できることに疑いの余地はありませんが、平均的なユーザーにとっては手間がかかりすぎるのではないかと心配しています。
@Akira: IE7 の「SVG レンダラー」で何か問題がありましたか? 常に Javascript エラーがスローされます。