2

Windows と MacOSX (Windows の Chrome を含む) の両方で試した他のすべてのブラウザーでは、「iframe shim」を使用して正常に動作します。ただし、iframe シムを Mac 上の Chrome のプラグインで動作させることができませんでした。

問題をググっていくつかのテストを行ったところ、オブジェクトに依存しているようです。動作する StreetView (フラッシュ オブジェクト) を使用した例と、動作しない Java アプレットを使用した別の例を見つけました。

いくつかのリンク:

メソッドの説明は次のとおりです。 http://www.oratransplant.nl/2007/10/26/using-iframe-shim-to-partly-cover-a-java-applet/

Java アプレットを使用したこの例は、上記の記事からのものです: http://www.oratransplant.nl/files/iframe_shim.html

ストリートビューを使用した作業バージョンは次のとおりです: http://gmaps-samples.googlecode.com/svn/trunk/streetview/iframeshim.html

Chrome で要素を検査 (および編集) し、2 つのサンプル ページ間でオブジェクトをコピーすると、(Mac 上の Chrome では) Flash オブジェクトは iframe shim のみを許可しているように見えますが、Java アプレットは許可していないようです。

私たちの場合、Firebreath で構築されたカスタム プラグインを使用しています。

プラグインに追加機能を実装して、フラッシュが行っていることを模倣する必要があるかもしれませんが、これは Chrome の Mac ビルドのバグが原因である可能性があります。

誰でも助けることができますか?プラグイン上で HTML 要素を表示できるようにしたいと考えています。iframe shim は、ほぼすべてのブラウザーと OS の組み合わせで動作します。

4

2 に答える 2

2

合成の欠如は、Core Animation または Invalidating Core Animation を使用するプラグインでの Mac Chrome の既知のバグです。これは将来のバージョンで解決される予定です。理論的には、Mac で iframe ハックが必要になることはなく、プラグインは常に正しく合成されるはずです。興味がある場合は、値 74656 の NPN_GetValue を使用して、コア アニメーションの合成がプラグインで動的にサポートされているかどうかを検出できます (WebKit ソースの WKNVSupportsCompositingCoreAnimationPluginsBool を参照してください。これは正式な NPAPI 仕様にすぐに追加する必要がありますが、値は追加されません。変更されているため、今すぐハードコードでき、Chrome がサポートするようになると true が返されるようになります)。

一般に、iframe ハックは Chrome の最近のバージョン (テストしているバージョンは何ですか?) で動作するはずですが、ページが再レイアウトされるまで気付かないバグがいくつかあるため、強制的に操作することをお勧めします。それ。

ストリートビューの例は Mac Chrome では有効なテストではないことに注意してください。これは wmode=opaque を使用しているためです。つまり、CA モードではなく CG モードを使用しているため、iframe ハックに関係なく合成が完全に機能します。

于 2011-07-20T16:06:21.023 に答える
1

どのような描画方法を使用していますか? Mac では、すべての描画がウィンドウレスであるため、プラグインで iframe を使用する必要はありません。ただし、Chrome で可能になるとは思わない奇妙なことをしている場合 (つまり、coregraphics または quickdraw コンテキストで opengl コンテキストを作成する場合) を除きます。 )。そんなことをしていたら、あなたにできることはおそらく何もないでしょう。

簡単な設定の 1 つは、プラグインのサイズを 1x1 に変更して効果的に「非表示」にすることです。

于 2011-07-20T15:01:35.340 に答える