2009-09-03 9 views
3

私は同僚とこの議論をしていました。彼はフラッシュがロードされるオブジェクトの周りにa-hrefを置くコードを作成しました。これを見たとき、私はほとんど叫んで、代わりにclickTagを使うように言いました。オブジェクト(つまり、フラッシュ)の周りのa-hrefはちょうど悪いアイデアか、実際にそのようなオブジェクトのクリックをどのように処理しなければならないかについての標準がありますか?

彼はa-hrefでうまく動作すると教えてくれました。私はそれをチェックし、コードはie6-8とfirefox(すべてのフラッシュプレイヤー9または10がインストールされている)でうまくいきました。

I KNEWこれは実際にa-hrefを使用することは本当に悪い考えで、私はそれを使用しない理由について少し研究しました。

そこから私は基準(http://www.w3.org/TR/html401/struct/objects.html)をチェックし、周りを探索しました。

しかし、なぜそれがうまくいかないのか説明しませんでした。

周囲のa-hrefを使用し、clickTag(fyi:cmsから表示されるので、どのような種類のswfが表示されるかはわかりません)を渡すためのソリューションが完成しました。

a-href/flashが動作することがありますが、時には動作しない場合があります。そのようなことを行う「標準的な」方法は何でしょうか?他のオブジェクト(svg/movie/audio/..?)については何ですか?(フラッシュやメディアプレーヤーのような埋め込みオブジェクトのクリックが処理される方法を定義する標準がありますか?クリックイベント)?

答えて

4

これに対して標準はありませんが、ブラウザ/プラットフォームの組み合わせによって予測できない結果になることは間違いありません。 simple searchを実行して結果を確認すると、swfにハイパーリンクするだけで問題が発生した人が多いことがわかります。

ハイパーリンクとclickTagの両方を追加することは意味がありません。訪問者に正しいバージョンのFlashがある場合、Flashムービーを取得してclickTagを使用するため、機能を複製しています。 Flashがインストールされていない場合でも、ハイパーリンクにアクセスできるように、ハイパーリンクをフォールバックとして使用する必要があります。 SWFObjectのようなライブラリはこれを非常に簡単にします。

+0

この場合、あなたはどのようなswfがコンテンツ管理によってアップロード/表示されているかを事前に知っていませんか?これが私が全話を伝えていた理由です。 afireは、hrefが動作する保証はありません。また、フラッシュ以外のオブジェクトはどうですか? – Niko

+1

オブジェクトのハイパーリンクは、オブジェクト自体がクリックイベントをインターセプトしてデフォルトのクリックハンドラを実行できるため、常に予期しない動作をします。それは動作しないかもしれませんし、オブジェクトに依存し、ブラウザ/プラットフォームの組み合わせに依存します! –

+0

私は何を描いているのですか?オブジェクトがイベントを伝播するか、つまりaを実行するかどうかを指定します。私はまだからの声明を探しています。 w3c、または少なくともmozilla、adobe、msのいずれかです。 あなたの答えと私自身の研究から、私は単にそれがうまくいかなければならないかを説明/定義する標準的で明確な定義がないということを集めます...誰かが明確な説明を指すことを望んでいました。 – Niko

2

私はそれに対してお勧めします。私のコンピュータは64ビット版のLinuxを実行しており、FlashはFirefoxで少し面白い動作をします。 (ある意味では、z-indexは他のすべてのものよりも常に大きいように機能します)。私はそれをテストしていませんが、うまく動作しないと思われます。要するに、これは、すべてのプラットフォーム上のすべてのブラウザでテストしたいことのようなものであり、可能であれば、それを避けるほうがよいでしょう。

+0

まさに...人々が物事を正常に行う方法から逸脱しているのは、クロスブラウザのクロスプラットフォームの問題を求めているだけです。特に組み込みオブジェクトの場合は特にそうです。 – Zoidberg

+0

これは本当に問題ではありません - 私は経験から、その悪いアイデアを知っています - 質問はもっとあります:そのようなもの(埋め込みオブジェクトのクリック)がどのように扱われるかを定義する標準はありますか? – Niko

+0

@ニコ:質問のタイトルは「オブジェクト(フラッシュ)の周囲のa-hrefは悪い考えですか? –

0

それを行うための標準的な方法は、クリックにフォーカスする前に、インライン<embed><object>に捕獲された後、JS式に渡すために、またはclickマウスイベントをリッスンする[onclick]属性を使用することですがに介して転送されますプラグイン。

私が正しく、そして<a>同様<object><embed>の周りに適切にラップする必要がありますプラグインコンテンツの周囲<object><embed>ラップあればと思っています。私はまた、<object><embed>がクリックマウスイベントをキャプチャしたとき、それが適切に泡立つことを自然に信じたいと思う。しかし、この種の動作がプラグインによって変更されて、<a>が適切に計算された表示を得られないか、または<a>にイベントを発生させない他のイベントモデルが得られないかどうかは100%確信していません。

関連する問題