jsによるFlashオブジェクトの取得に関しては、インターネット上に多くの例があり、私も色々な方法を試してきました。
それらはすべて使用可能ですが、私が最も望むものはありません
その後、Baidu を調べましたが、非常に標準化されており、あらゆる状況が考慮されていますが、コードの量は楽観的ではありません。 🎜> 前 前後のコードは 20 行近くあり、圧縮後は 864 バイトになります。
そこでこの記事が生まれました。
インターネットから収集した、私が満足したいくつかの方法をテストして共有したいと思います。
皆さんにも互換性のテストにご協力いただきたいと思います。互換性がない場合は、コードをテストして修正できるよう、ブラウザのバージョンを書き留めておいてください。
以下のコードを見てみましょう。
function getFlashMovieObject( movieName ) {
if (window .document[movieName]) {
return window.document[movieName];
}
if (navigator.appName.indexOf("Microsoft Internet") == -1) {
if (document .embeds && document.embeds[movieName])
return document.embeds[movieName];
} else { // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
return document.getElementById(movieName);
}
}
このメソッドは、ドキュメント内で値が取得された場合、その値を直接返します。そうではありません。作者は埋め込みをよく使用します。代替との互換性があります。
もちろん IE には特別な処理が必要ですが、ここでは作者は getElementById をよく使用しますが、他の場所では window を使用することが多くなります。
もちろん getElementById は正しく、埋め込みには名前だけがあり ID がないため、オブジェクトの ID を取得します。
var flash = document["myFlash"] || window ["myFlash"];
このメソッドは比較的簡潔で明確なので、あまり詳しく説明しません。
var flash = document["myFlash"] ;
これは、さまざまなバージョンを読んだ後で自分で書いたもので、コンピューター上のさまざまなブラウザ仮想マシンでは IE6 ~ 10 がすべてテストに合格したため、私も戸惑いました。
もちろん、正式に使用されている場合はオプション 1 を選択しますが、特別な状況で、複数のブラウザと互換性を持たせる必要がない場合は、これを検討することもできます。
以下は 3 つのメソッドを使用してフラッシュ オブジェクトを取得した後、フラッシュを制御してテストする実際の例です。
テストに合格できないことが判明した場合は、ブラウザのバージョン番号と合格できない解決策を残してください。よろしくお願いします。