Silverlight 1.0レベルアプリケーションをFirefox 3に対応させる方法

現在のところ、SilverlightのFirefox 3への正式対応は、Silverlight 2の正式リリース版で予定されています。

とはいうものの、すでに展開しているJavaScript APIでのSilverlightアプリケーションへの対応を行うため、アップグレードされたSilverlight.jsが公開されていますので、ご確認の上、ご利用いただければと思います。

Silverlight.jsのダウンロードは、
https://code.msdn.microsoft.com/silverlightjs/Release/ProjectReleases.aspx?ReleaseId=1239
から行えます。

説明は、 次のページにあります。
https://code.msdn.microsoft.com/silverlightjs

変更点をまとめた文書は、次のURLからダウンロードできます。
https://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=silverlightjs&DownloadId=2485

いくつもの新機能がある内、重要なポイントとして、Silverlight.createObjectメソッドにaltパラメータを取れるようになったことを紹介したいと思います。
このパラメータを利用すると、適切なバージョンのSilverlightプラグインが見つからない場合に表示するHTMLを指定できます。

 //
var altHTML = "<a href='javascript:Silverlight.getSilverlight(\"{1}\");' style='text-decoration: none;'>"+
              "<img src='{2}' alt='Get Microsoft Silverlight' style='border-style: none'/></a>";
     Silverlight.createObject(
        "plugin.xaml",                      // Source property value.
        parentElement,                      // DOM reference to hosting DIV tag.
        "myPlugin",                         // Unique plug-in ID value.
        {                                   // Plug-in properties.
            width:'1024',                   // Width of rectangular region of plug-in in pixels.
            height:'530',                   // Height of rectangular region of plug-in in pixels.
            background:'white',             // Background color of plug-in.
            isWindowless:'false',           // Determines whether to display plug-in in windowless mode.
            framerate:'24',                 // MaxFrameRate property value.
            version:'1.0'                   // Silverlight version.
            alt: altHTML                    // Alternate HTML to display if Silveright is not installed
        },
        {
            onError:null,                   // OnError property value -- event-handler function name.
            onLoad:null                     // OnLoad property value -- event-handler function name.
        },
        null,                               // initParams -- user-settable string for information passing.
        null);                              // Context value -- passed to Silverlight.js onLoad event handlers.


//