2009-07-21 10 views
0

Flickr Silvrlight Appを表示するためにSilverlightがインストールされていない場合、代替コンテンツとしてFlickrバッジを表示したいと考えています。 Firefoxでは動作しますがIEでは動作しません。<object>スクリプトタグを含む代替コンテンツはIEでドキュメント化されません

<object width="100%" height="100%" type="application/x-silverlight-2" data="data:application/x-silverlight-2," id="SilverlightObject"> 
    <param value="/ClientBin/FlickrSilverlightApp.xap" name="source"/>  
    <param value="2.0.31005.0" name="minruntimeversion"/> 
    <!-- Flickr Photos --> 
    <div id="flickrbadge"> 
     <h3 class="subheading">Flickr Photos<a target="_blank" href="http://www.flickr.com/photos/tags/monkey/">View All</a></h3> 
     <script src="http://www.flickr.com/badge_code_v2.gne?count=8&amp;display=latest&amp;size=s&amp;layout=x&amp;source=all_tag&amp;tag=monkey" type="text/javascript"></script> 
    </div> 
</object> 

h3タグの内容は表示されていますが、Flickrバッジは表示されません。私はFlickrのバッジコードが何をしているのか見てみました。それは空想的ではありませんが、ドキュメントを作成します。 IEはタグ内のdocument.writeをサポートしていませんか?そうでない場合は、どうすれば回避できますか?

答えて

1

おそらく、問題を元に戻す必要がありますか?あなたのオブジェクトタグの中にFlickrバッジを入れるのではなく、あなたがSilverlightをインストールしていない場合は、オブジェクトタグをあなたのFlickrバッジsrcリンクに置き換える必要があります。もちろん、かなり大きくて長い文字列を持つよりも

(簡潔にするためにjQueryを使用して)

$(document).ready(function() { 
    if(!Silverlight.IsInstalled()) { 
    $("#SilverlightObject").replaceWith("<div id="flickrbadge"><h3 class="subheading">Flickr Photos<a target="_blank" href="http://www.flickr.com/photos/tags/monkey/">View All</a></h3><script src="http://www.flickr.com/badge_code_v2.gne?count=8&amp;display=latest&amp;size=s&amp;layout=x&amp;source=all_tag&amp;tag=monkey" type="text/javascript"></script></div>"); 

}) 

、あなただけの表示でページにFlickrのバッジのdiv +コンテンツを置くことができる:どれも設定されていないし、それをつかみますDOMから挿入し、必要な場所に挿入します。その欠点は、スクリプトを使用していなくてもダウンロードして実行するため、余分な要求が発生することです。

+0

errrr、引用符も適切にエスケープする必要があります。 – ScottKoon

+0

また、SLをインストールしている場合は、ソリューションを元に戻してオブジェクトタグを追加することもできます。 http://stackoverflow.com/questions/281246/how-can-i-dynamically-add-an-object-tag-with-javascript-in-ie – ScottKoon

3

<script src="..."></script>ではありませんか?

+0

最後に/で終了します。 corymathews

+0

コードサンプルをに更新してください。まだ実行されていません。 –

1

スクリプトhereのdocument.writeにいくつかの詳細があります。私は、この特定のスクリプトがあなたのコントロールの外にあることに気付きましたが、なぜあなたはその行動の違いを見るのかについて何らかの光を当てるかもしれません。

あなたはIE上にあるバッジリンクを試しましたが、&アンプをデコードするまで適切なフラグメントを生成しませんでした。 〜&。

HTMLとXHTMLの間でコンテンツを処理する方法にはいくつかの違いがあります。ページがXHTMLからFFへ、HTMLからIEへ配信されているかどうかを確認してください。ただし、これはコンテンツにのみ影響し、src属性を使用するスクリプトには影響しません。

IEの場合、defer属性を試してみるとよいでしょう。しかし、それはIE特有で、他のブラウザがブラウザを無視するかどうかは分かりません。

ユーザーがJSを無効にしているケースをカバーするために、を追加します。私はそれがあなたの問題だとは思わないが、追加するのは良いことだ。

+0

良い点、 '&'を '&'だけに置き換えてください。 –

関連する問題