ウェブサイト標準の検証方法を通じてFlashページを共有する方法

ウェブサイト標準の検証方法を通じてFlashページを共有する方法
1. 埋め込みは違法です
<embed> タグは Netscape のプライベート タグです。<embed> タグは広く使用されていますが、HTML3.2、HTML4.0、XHTML1.0 に至るまで W3C には含まれていませんでした。 <embed> タグを使用するページは W3C 検証に合格しません。

2. オブジェクトは使用する必要があります
W3C は <object> タグを推奨しています。 XHTML2 でも、<img> は <object> に置き換えられます。 <object> メソッドを使用してフラッシュを挿入するコードは次のとおりです。

<object type="application/x-shockwave-flash" data="test.swf" width="200" height="100"> <parm name="movie" value="test.swf /> </object>
ただし、この方法はIE5-IE6/Winでは正しく表示されません(連続再生できず、再生する前にダウンロードする必要があります)が、それより低いバージョンでは正しく表示されます。その後、連続再生の問題は、最初に小さなフラッシュ ファイルを呼び出し、次に大きなフラッシュ ファイルを埋め込むことで解決されました。ただし、IE5 以上のバージョンでは、フラッシュが表示されない場合があります。

3. 現在の暫定措置
では、標準に準拠し、すべてのブラウザで Flash を正しく表示するにはどうすればよいでしょうか?マクロメディアの Web サイトはどのようにして W3C 検証に合格したのでしょうか?

一部のデザイナーは、JavaScript を使用して不正な <embed> タグを非表示にすることを考えました。

<script type="text/javascript"> if (navegiator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"] { document.write(''<embed src="test.swf" ...
現時点ではこれがより良い解決策です。フラッシュを挿入する必要がある場合は、js を使用して呼び出します。この方法は、W3C 検証プログラムを欺き、ページを検証に合格させることができます。しかし、それは単なる「不正行為」であり、実際には基準を満たしていません。

Macromedia はどうやってそれを実現するのでしょうか? 次のコードをご覧ください:

<!-- $RCSfile: FlashDetection2k.pm,v $ $Revision: 1.68 $ : ブラウザの Accept ヘッダーには Flash 6,0,65,0 以上がインストールされていることが示されています。したがって、この Flash 6 ムービーは問題ありません。どうぞご覧ください。 -->
妥協的なアプローチを採用しています。

(1)まず、JavaScriptを使用してブラウザとFlash Playerのバージョンを確認します。
(2)異なるバージョンに応じてバックグラウンドでHTMLコードを動的に生成する。
簡単に言うと、<object> メソッドがデフォルトで使用されます。ブラウザがオブジェクト "application/x-shockwave-flash" の MIME タイプを処理できない場合は、子要素 <embed> を挿入します。正直に言うと、これは js を使用して <embed> メソッドを隠すのと似ており、これも「不正」な方法ですが、現時点で実行できる最も標準的で完璧なアプローチです。

本当に <embed> を放棄したいのであれば、IE ブラウザが <object> をより適切にサポートするようになるのを、おそらく Longhorn がリリースされるまで待つしかありません。

<<:  MySQL シリーズ II マルチインスタンス構成

>>:  HTML doctype の役割の紹介

推薦する

MySQL データベースのインデックスとトランザクション

目次1. 索引1.1 コンセプト1.2 機能1.3 索引作成の原則1.3.1 ディスクアクセス回数を...

Linux環境でよく使われるMySQLコマンドの紹介

mysql コマンドを入力します: mysql -u+(ユーザー名) -p+(パスワード) mysq...

CSS フロートプロパティ図 フロートプロパティの詳細

CSS の float プロパティを正しく使用することは、カバーすべき内容が多く、ブラウザの互換性の...

IDEA が MySQL データベースに接続できない問題の 6 つの解決策

この記事では、IDEA が MySQL データベースに接続できない問題に対する 6 つの解決策を主に...

垂直グリッドと漸進的な行間隔の例

新しい質問急いで来て、急いで行ってください。 「垂直グリッドとプログレッシブ行間隔 (パート 1)」...

jQuery はパーセンテージスコアリングの進捗バーを実装します

この記事では、パーセンテージスコアリングプログレスバーを実現するためのjQueryの具体的なコードを...

LinuxサーバーにVueプロジェクトをデプロイする

ケース1 vue-cliはvue3プロジェクトをビルドし、プロジェクトをLinuxサーバーにアップロ...

リモートログインとポート公開を防ぐためのLinuxサーバー構成IPホワイトリスト

序文ブロガーが使用しているサーバーは Alibaba Cloud から購入したものです。実際、Ali...

外部ファイル(js/vbs/css)をインポートするときに文字化けを回避する方法

ページ内にはjs、cssなどの外部ファイルが導入されており、外部ファイルのエンコードが現在のページフ...

vue $http の get および post リクエストのクロスドメイン問題を解決する

Vue $http get および post リクエストのクロスドメイン問題まずconfig/ind...

jsvc を使用して tomcat を起動する方法 (通常のユーザーとして実行)

jsvc の紹介実稼働環境では、Tomcat はデーモン モードで実行する必要があります。Tomc...

トップ 10 Js 画像処理ライブラリ

目次導入1. 異食症2. レナ3. コンプレッサー4. ファブリック5. ぼかす6. 画像を結合する...

JS での filter() 配列フィルターの使用

目次1. はじめに2. 方法の紹介3. 使用例要約する1. はじめに配列フィルターは、フロントエンド...

Dockerコンテナの原理の分析

目次01 コンテナの本質とは何か? 02 Cgroupテクノロジーと名前空間テクノロジーの概要03 ...

MySQL alter ignore構文の詳細な説明

今日仕事中に、ビジネス側から次のような質問をされました。テーブルがあり、一意のフィールドを追加する必...