3

私は同僚の一人とこの話し合いをしていました。彼は、フラッシュがロードされるオブジェクトの周囲にa-hrefを配置するコードを作成しました。これを見たとき、私はほとんど叫び、代わりにclickTagを使用するように彼に言いました。

彼はそれがa-hrefでうまくいくと私に言った。私はそれをチェックアウトし、コードはie6-8とfirefox(すべてflashplayer 9または10がインストールされている)で正常に機能しました。

a- hrefを使用するのは本当に悪い考えだと知っていたので、なぜそれを使用しないのかについて少し調査しました。

そこから、標準(http://www.w3.org/TR/html401/struct/objects.html)をチェックして、グーグルで検索しました。

しかし、なぜそれが機能するべきか、または機能しないべきかについての説明は見つかりませんでした(私は時々それが機能しないことを知っています)。

最終的に両方を使用するソリューションになりました-周囲のa-hrefとclickTagを渡しました(fyi:cmsからのものであるため、どの種類のswfが表示されるかわかりません)。

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

4

3 に答える 3

4

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

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

于 2009-09-06T23:48:06.410 に答える
2

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

于 2009-09-03T14:59:09.877 に答える
0

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

<object>and<embed>がプラグイン コンテンツを適切にラップする場合は、andも適切にラップする<a> 必要があると考えています。また、クリック マウス イベントをキャプチャすると、適切にバブルアップすることも自然に信じたいと思います。しかし、この種の動作がプラグインによって変更される可能性があるかどうかは 100% わかりません。表示が適切に計算されないか、または他のイベント モデルが でイベントを発生させない原因となります。<object><embed><object><embed><a><a>

于 2009-09-12T22:11:20.913 に答える