0

いくつかの Silverlight 埋め込みオブジェクトを含むページがあります。1 人のプレーヤーが表示され、他のすべてのプレーヤーは非表示になります (表示: なし)。サムネイルをクリックすると、コードは対応する非表示のオブジェクトを複製し、表示されているプレーヤーをこの複製されたオブジェクトに置き換えます。

これは、Firefox、Chrome、および IE9 では問題なく動作しますが、IE8 では正しく動作しません。表示されているプレーヤーは置き換えられますが、これにより大きな白い空の Silverlight プレーヤーが作成されます。この白い要素を右クリックすると、Silverlight コンテキスト メニューが表示されますが、他には何も表示されません。コンソールやその他の手がかりにエラーはありません。

この問題のある Web サイトはオンラインです: http://www.vioranje.nl
IE8 で開き、タイトルバー "web afleveringen" の下にある再生ボタンをクリックして、何が起こるかを確認してください。

これは、Silverlight プレーヤー (サムネイルのクリック イベント ハンドラーにアタッチされている) を複製する jQuery コードです。

var embedType = (element.data().embedtype) ? element.data().embedtype : 'object';
var $embed = $element.find('.large .embed '+embedType);
var $newplayer = $(this).find('.embed');
var newplayerHTML = $newplayer.html();
var $newplayerInstance = $(newplayerHTML);
$embed.replaceWith($newplayerInstance);
$newplayerInstance.show();

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

1

あなたのケースをデバッグしようとしましたが、IE8 がタグを処理し、次のように書き直したようです。

<OBJECT data="data:application/x-oleobject;base64,QfXq3+HzJEysrJnDBxUISgAJAACuLQAAuh8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" width=442 type=application/x-silverlight-2 height=307 checkedByCssHelper="true"></OBJECT>

これにより、Silverlight ビデオ プレーヤー オブジェクトに渡すパラメーターが明らかに失われます。

これは、すべてのブラウザの問題を解決するのに役立つかもしれないトリックです. 埋め込みタグを非表示にするために a を使用する代わりに a を使用してみてください. タグを使用すると.. Silverlight コードは非表示の間は実行されません. HTML コードではなくテキストとして扱われます。

したがって、HTML テンプレート コード"tpl_rtlxlvideo" では次のようになります。

交換:

<div class="embed" style="display: none;">{YOUR OBJECT TAG}</div>

と:

<textarea class="embed" style="display: none;">{YOUR OBJECT TAG}</textarea>

そしてJavascript側の場合:

交換:

var newplayerHTML = $newplayer.html();

と:

var newplayerHTML = $newplayer.val();

それがあなたを助けることを願っています:)

于 2012-05-29T14:32:46.487 に答える