0

奇妙な (Webkit 固有の?) 現象に悩まされています:
プラグイン オブジェクトの「位置」属性を変更すると、プラグインが削除され、すぐに新しくインスタンス化された別のプラグインに置き換えられます。

これは、現在のプラグインのすべての状態を失い、新しいプラグインでやり直すことを意味します。

私のプラグインは組み込みプラットフォームでのみ実行されるため、これが Webkit 固有のものかどうかはわかりません。

コードは次のとおりです。

<object id="mypluginobject" type="video/myplugin" style="width=800px, height=600px">

JavaScript では、次のようにします。

var myobject = $('mypluginobject');
myobject.style.width = '1280px'; // OK
myobject.style.height= '720px'; // OK
myobject.style.position='fixed'; // myobject disapears and is replaced by a new instance

NPAPI コードでは、NPN_Destroy()called の直後に が続きNPN_New()、すべて同じNPPポインタを持っていることがわかります。

これは、なぜこの「位置」属性が私のオブジェクトの完全な置換を引き起こすように見えるのか疑問に思います.

実際には、すべてのランタイム情報が失われ、ビデオが停止し、回復できなくなります。私のプラットフォームは非常にエキゾチックであることを認識しているため、これらすべての副作用がある可能性があります。

  • ウェブキット 322
  • Qt 4.7.2 で動作
  • そしてDirectFBで

何か案が?

4

1 に答える 1

1

残念ながら、これはすべてのブラウザーでかなり標準的なことです。問題は、「位置」を変更すると、オブジェクトが入っているコンテナが変更されることです。そうすることで、基本的に、ブラウザーが (内部的に) ページからそれを削除してから、再度追加するようになります。

一部のブラウザで「表示」または「表示」を変更すると、まったく同じ問題が発生する可能性があります。「オーバーフロー」もかなり普遍的にこれを引き起こします。場合によっては、高さと幅を 1 ピクセル x 1 ピクセル未満に設定することも同様に悪い考えです。プラグインは楽しくないですか?

オブジェクトとその親要素でこれらのことを避ければ、問題ありません。私が使用する回避策は、プラグインを移動する必要があるときにプラグイン自体を常に絶対位置に配置し、jquery を使用して「配置」要素のサイズと位置を計算することです。それは動くことができ、いつでも(またはイベントまたはタイマーで)新しい位置を計算し、オブジェクトタグの浮動絶対位置の親divを新しい位置に再配置します。特に修正したい場合は、少しハックですが、それが問題を解決する唯一の方法です。

もちろん、プラグインの状態を復元できるようにすることもできると思います。=]

于 2013-01-08T00:41:11.277 に答える