次の方法で共有


Windows Live Messenger クライアントの直接呼び出し

Web ページにスクリプトを追加することで、Web ページから MSN® Messenger クライアントを直接呼び出すことができます。新規 HTML ページの作成から開始しても、既存の HTML ページにスクリプト コードを追加してもかまいません。このスクリプトは、MSN Messenger クライアント アプリケーションを直接起動する ActiveX コントロールを呼び出すものです。スクリプトの設計上、2 つの任意の文字列変数の両方を ActiveX コントロールに渡すことも、一方の変数のみを渡すことも、両方とも渡さないようにすることもできます。ActiveX コントロールに渡される変数は、AppID 変数および BOT 変数です。AppID 変数および BOT 変数は両方とも文字列変数です。BOT 変数の値は電子メール アドレスの形式の文字列にします。下記のコード サンプルでは、BOT 変数に emailID という変数名が割り当てられています。

MSN Messenger クライアントの起動時の動作は、以下の項目に応じて変化します。

  • 2 つの変数のうちどちらが ActiveX コントロールに渡されたか
  • MSN Messenger ActiveX コントロールが呼び出されるときの MSN Messenger クライアントの状態 (MSN Messenger クライアントが起動しているかどうか)
  • ユーザーのシステムにインストールされている MSN Messenger クライアントと Microsoft® Internet Explorer ブラウザのバージョン

変数がMSN Messenger クライアントの動作に与える影響については、「Windows Live Messenger の変数の使用」を参照してください。

MSN Messenger の ActiveX コントロールを起動するためのメインの呼び出しは次のスクリプトのようになります。

obj.LaunchApp(AppID, emailID);

ただし、5.01 よりも前のバージョンの Internet Explorer を使用しているユーザーは、MSN Messenger クライアントにアクセスできません。同様に、ユーザーの MSN Messenger クライアントが 6.2 よりも前のバージョンである場合も、このメソッドは失敗します。 

そのため、以下の条件を検証するコードを追加することが重要です。

  • サイト訪問者は Internet Explorer 5.01 以降を使用している。
  • サイト訪問者は MSN Messenger 6.2 以降を使用している。

最初の条件を検証するコードには、ユーザーのブラウザが ActiveX コントロールに対応していないことを通知するダイアログ ボックスを追加する必要があります。2 番目の条件を検証するコードには、新しいバージョンの MSN Messenger が必要であることを通知するエラー メッセージを追加する必要があります。

以下のスクリプト エリア内のサンプル コードは、MSN Messenger を起動する ActiveX コントロールをプログラムで呼び出す方法を示しています。

<script type="JavaScript">
<!--

var obj;
var winModalWindow;
var AppID = "10331003";
var emailID = "";
//上記のコード変数宣言では、AppID 変数に米国 (1033) のユーザー向けのゲーム Hexic (1003) の値を代入しています。// 自分のアプリケーションに (サポート チームから) 割り当てられる、アプリケーションの対象の国または地域に応じた正しい値に置き換える必要があります。

function TryItNow(AppID)
{
// テスト 1:電子メール アドレスを示す変数値を渡さずに起動すると、ユーザーは他のユーザーを通信相手として選択する必要があります。
CheckMessenger();
LaunchApp(AppID, "");
}

function LaunchApp(AppID, emailID)
{
if (obj != null)
{
obj.LaunchApp(AppID, emailID);
}
}
function CheckMessenger()
{
eval ('try {obj = new ActiveXObject("MSNMessenger.P4QuickLaunch"); } catch (e) {obj = null;}');
var strErrorPage = "http://" + [HOSTNAME] + "/Error.aspx"


if ([Browser is not IE])
{
ShowWindow(strErrorPage, 410, 130);
}
else if (obj == null)
{
ShowWindow(strErrorPage, 410, 225);
}

}


 
function IgnoreEvents(e)
{
return false
}
 
//MSN Messenger 6.2 クライアントがインストールされていない場合、またはブラウザが Internet Explorer でない場合、エラー メッセージを表示します。
function ShowWindow(strError, width, height)
{
if (window.showModalDialog)
  {
   
window.showModalDialog(strError,null,
"dialogWidth="+width+"px;dialogHeight="+height+"px;help=no;dialogLeft=160")
  }
else
  {

var ah = screen.availHeight;

var y = (ah - height) / 2;

window.top.captureEvents (Event.CLICK|Event.FOCUS)
window.top.onfocus=HandleFocus 
winModalWindow = window.open (strError,"ModalChild",
"dependent=yes,width="+width+",height="+height+",top="+y+",left=160,screenX=160,screenY="+y)
winModalWindow.focus()
  }
}

 
function HandleFocus()
{
if (winModalWindow)
  {
if (!winModalWindow.closed)
    {
winModalWindow.focus()
    }
else
    {
window.top.releaseEvents (Event.CLICK|Event.FOCUS)
    }
  }
return false
}



</script>