6

更新: この質問の前提は見当違いであることが判明しました。移動がユーザーのクリックに応答しない限り、問題は発生しません。こちらをご覧ください。


私は数日間バグに頭を悩ませてきましたが、誰かが助けてくれることを望んでいます.

jwplayer javascript apiを使用して jwplayer オブジェクト (「myplayer」) を呼び出す jquery スクリプトがあります。たとえば、特定のビデオで myplayer をロードするには、次のように呼び出します。

myplayer.load('my_url');

これは、まずプレーヤーを DOM の別の場所に移動しない限り、firefox と Internet Explorer の両方で正常に機能します。

ただし、私のスクリプトでは、プレーヤーを場所 A から場所 B に移動してから場所 A に戻してから、 を呼び出すことがあり myplayer.load()ます。これは、Firefox では問題なく動作します。しかし、Internet Explorer 9 では、次の行でエラーが発生します。

return eval(instance.CallFunction("<invoke name=\""+name+"\" returntype=\"javascript\">" + __flash__argumentsToXML(arguments,0) + "</invoke>"));

この関数の中にあります:

function __flash__addCallback(instance, name) {
  instance[name] = function () { 
    return eval(instance.CallFunction("<invoke name=\""+name+"\" returntype=\"javascript\">" + __flash__argumentsToXML(arguments,0) + "</invoke>"));
  }
}

Internet Explorer デバッガーで何が起こっているかを追跡すると、 がmyplayer.load('my_url')呼び出さthis.callInternal("jwLoad",u)れていることがわかります。jwplayer.js実行中this.callInternal("jwLoad",u)にエラーが発生したようです。

詳細:

html は次のようになります。

<div id='stage'>
    <div id='myplayer_wrapper'>
        <object id='myplayer'>...</object>
    </div>
</div>
<div id='holding-pen'></div>

プレーヤーが使用されていないときは、そのラッパー div を保持ペンに移動します。

var el = $('#myplayer_wrapper');            
$('#holding-pen').append(el);

プレーヤーのラッパー div を保持ペンに移動すると、html は次のようになります。

<div id='stage'></div>
<div id='holding-pen'>
    <div id='myplayer_wrapper'>
        <object id='myplayer'>...</object>
    </div>
</div>

プレーヤーを使用する場合は、そのラッパー div をステージ div に戻します。

var el = $('#myplayer_wrapper');            
$('#stage).append(el);

プレーヤーのラッパー div をステージ div に移動した後、html は元と同じように見えます。

<div id='stage'>
    <div id='myplayer_wrapper'>
        <object id='myplayer'>...</object>
    </div>
</div>
<div id='holding-pen'></div>

ページの読み込み時に、プレイヤー オブジェクトを作成し、保持ペンに移動します。次に、それをステージに移動し、ビデオを読み込みます。

たとえば、ユーザーが画像のサムネイルをクリックすると、ビデオ プレーヤーが保持ペンに移動し、選択した画像がステージに移動します。

ユーザーが動画のサムネイルをクリックすると、保持しているペンから動画プレーヤーを取り出して、ステージに戻します。次に、選択したビデオをプレーヤーにロードします。これは、Internet Explorer で「_ flash _addCallback」問題が発生する場所です。

何が起こっているのかについての洞察を持っている人はいますか? または、これを Internet Explorer で動作させる方法について何か提案はありますか?

どうもありがとうございました!

4

1 に答える 1