28

私が取り組んでいる Web サイトにインタラクティブな (DOM リスナーなどとのアタッチとイベント処理) ベクトル グラフィックを表示する必要があります。SVG には W3C の推奨事項がありますが、この形式は Internet Explorer のサポートではまだ認識されていません (公開 Web サイトの場合)。IE は VML を処理しますが、ブラウザー (SVG と VML) に応じてキャンバスのような描画を行う JavaScript ライブラリーもあります - excanvasDojo Toolkit の GFX など。指定されたマークアップから SVG 画像を表示できるものはありませんが、それは素晴らしく、許容できます。

したがって、質問は実際にはいくつかの部分で構成されています。

  1. 特定のマークアップ (必須の SVG ではない) からベクター グラフィックスを表示し、DOM イベントにアタッチする可用性を提供するクロスブラウザー Javascript ライブラリはありますか?
  2. 存在しない場合、そのようなタスクを実行するのに最も適した最も人気のあるブラウザ組み込みテクノロジはどれですか? 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 エラーがスローされます。

4

9 に答える 9

9

Safari、Opera、および Firefox はすべて、javascript から svg をスクリプト化する機能を含め、さまざまな程度の完全性と正確性で SVG をネイティブに (たとえば、プラグインなしで) サポートしています。

現在html5で標準化されているcanvas要素もあり、上記のブラウザでもすでにサポートされています(html5ドラフトの比較的最近の変更により、特定のエッジケースでさまざまな癖があります).

残念ながら、標準ベースのアプローチは、IE が独自のエコシステムの外で起こっていることを故意に無視することによって一種の破壊的なものになりますが、キャンバス/svg をiecanvasなどの VML (IE 独自のベクター言語) に変換しようとするライブラリが多数あります。

[編集: おっと、お気に入りの js ライブラリを忘れていました -- Cake ! キャンバスでsvgを解析して表示でき、IEもサポートしていると信じています]

[さらに別の編集: Cake には実際に、あなたがやりたいと思うことを行うデモがあります]

于 2008-08-13T11:13:39.987 に答える
6

RaphaelJavascriptライブラリを見てください。まだ始まったばかりですが、とても有望に見えます。

IE7.2にリストされているSVGサポートを備えたIEロードマップを覚えています。

あなたがそれをどれだけインタラクティブにしたいかに依存しますか?

于 2008-08-13T11:42:58.460 に答える
2

Silverlightでの「Windowsロックイン」の意味を明確にできますか?これはWindowsとMacIntelで実行され、ベクター部分はMoonlightプラグインを使用するLinuxで問題なく実行されます。

Amigaのサポートがなかったために見捨てられましたか?

于 2008-08-16T07:06:17.100 に答える
1

Walter Zorn には、任意のベクター グラフィックス用のJavaScript ライブラリがあります。それはまともに見えます。

于 2008-09-17T01:11:24.100 に答える
1

多くのブラウザーに実装されている新しいCanvas要素をご覧ください。また、Canvas 要素を実装した IE 用の ActiveX コントロールもあると聞きました。

更新:待って、あなたはすでにそれを言った. 次回は全問読まねば!:)

于 2008-08-13T09:55:05.933 に答える
0

あなたがリストするすべての可能性のうち、既存のテクノロジー(Javascript)のひどい悪用、ほとんどサポートされていない(SVG、Canvas要素)、または多くの作業(Java)ではない唯一のものはFlashです。ベクター グラフィックス パッケージとして設計されており、SVG や canvas タグよりも多くのブラウザーと互換性があります。

他のすべてのオプションよりも Flash を選択しない唯一の理由は、モバイル ブラウザーを目指しているか、Flash パッケージの予算がない場合です。

于 2008-08-13T12:43:36.933 に答える
0

SVG を選択してください。ユーザーに IE 用の ADOBE SVG プラグインを入手するように伝えてください。

英国政府のサイト (公共サービス) であるこの優れたサイトを参照してください。

エルギン

于 2008-08-13T09:59:13.973 に答える
0

IE は VML をサポートしていますが、他には何もサポートしていません。Microsoft は、(新しい XAML とすべてで) それを削除したと主張しましたが、それはまだ Office XML 形式の一部です (奇妙なことに、Excel .xlsx がコメントをサポートする方法です)。

FX と読み込みは、新しい Canvas 要素をさらにサポートします。多くは SVG をサポートしていますが、MS が Silverlight で行っている作業を考えると、IE が SVG をすぐにサポートするとは思えません。

Microsoft は、MS オペレーティング システムに対応していない Silverlight プラグインを提供する予定です。

私はこれまで Flex を使用してきました。Eclipse を使用しているにもかかわらず、これはかなり優れています。Flex を使用するために非常に高価な Adob​​e サーバー コンポーネントを購入する必要はありません。Flex は SOAP サービスを利用できます。

Flex 用の開発ツールは非常に手頃な価格であり、ほとんどの人が Flash を持っています。

于 2008-08-13T10:12:54.227 に答える
0

SVG は将来的には良い選択ではないと思います。ウィキペディアから:

  • 「最も一般的な IE プラグインは Adob​​e によって作成されました。ただし、Adobe は 2009 年の初めにこの製品を廃止する予定です」
  • 「... Internet Explorer は、今後のバージョン IE8 でも SVG をサポートしません」
  • 「...すべて SVG 1.1 のサポートが不完全です...」
  • 「Corel SVG Viewer プラグインはかつて Corel から提供されていました。その開発は中止されました。」
于 2008-08-13T10:18:18.007 に答える