OS、ブラウザの種類とバージョンを識別する

ユーザのOS(WindowsまたはMac)、ブラウザ、バージョンを返すスクリプトは以下の通りです。<HEAD>タグと<TITLE>タグの間にあるWebページに挿入できます。

<script language="JavaScript">

OSName = "unknown";
bName = "unknown";
bVer = "unknown";

if (navigator.appVersion.indexOf("Mac") > 0) OSname = "Mac";
if (navigator.appVersion.indexOf("Win") > 0) OSname = "Win";

if (navigator.appName.substring(0,8) == "Netscape")
bName = "NN";
if (navigator.appName.substring(0,9) == "Microsoft")
bName = "IE";

if (parseInt(navigator.appVersion) >= 3) bVer="3x";
if (parseInt(navigator.appVersion) >= 4) bVer="4x";
if (parseInt(navigator.appVersion) >= 5) bVer="5x";

</script>

<EMBED>、<A HREF>を使用する

以下のJavaScriptでは、上記のスクリプトの結果に従って、Internet Explorer 4以降とNetscapeのすべてのバージョンには<EMBED> バージョン3以前のInternet Explorerには<A HREF>が使われます。このJavaScriptを<EMBED><A HREF>タグのアクセス先のWebページに挿入してください。SRCHEIGHTWIDTHなどのタグ内のパラメータをムービーに合わせて変更し、HIDDENAUTOPLAYなど、必要なパラメータを追加してください。

<script language="JavaScript">
if (bVer == "4x") || (bVer == "5x") || (bName == "NN")
    document.write("<embed src=qtweb.mov height=176 width=130>") ;

else document.write("<a href=qtweb.mov> Play Movie </a>");
</script>

QuickTimeのウィンドウを開く

以下はopenqtwinという名前の関数のためのです。呼び出されると、qtwinという名前の240×120のウィンドウを開きます。このスクリプトをWebページの<HEAD></HEAD>タグの間に挿入してください。

<script language="JavaScript">
<! —
function openQTwin(url) {
qtwin = window.open(url,"song",’toolbar=0,location=0,
directories=0,status=0,menubar=0,scrollbars=0,resizable=0,
width=240,height=120’);
qtwin.focus();
}
// — >
</script>

height、widthを必要な値に設定できます。「qtwin =」とその後の「);」の間のすべてのテキストはスペース、改行なしの1行でなければならないので、注意してください。

JavaScriptを使ってQuickTimeを検出する

UJavaScriptを使ったプラグインの検出は、黒魔術のようなものです。JavaScript、VBScript、ActiveXオブジェクトを使うのに必要なユーザのOS、ブラウザの種類、ブラウザのバージョンを考慮しなければならず、それでもうまくいくとは限りません。QuickTimeを検出する最も簡単で信頼できる方法は、QuickTime自体を使うことですが、場合によっては、JavaScriptとVBScriptを使って、プラグインを検出できます。

  • Netscapeブラウザ(すべてのバージョン、すべてのOS):JavaScriptプラグインオブジェクトを使用できます。
  • Internet Explorer(バージョン5以降、Mac OS):JavaScriptプラグインオブジェクトを使用できます。
  • Internet Explorer(Windows):VBScriptとActiveXを使って、QuickTime 4.1.1以降を検出できます。

<script language="Javascript">
<! — hide from pre-script browsers
     var haveqt = false;
// — >
</script>

<script language="VBScript">
<! — hide from pre-script browsers
On Error Resume Next
Set theObject = CreateObject("QuickTimeCheckObject.QuickTimeCheck.1")
On Error goto 0

If IsObject(theObject) Then
     If theObject.IsQuickTimeAvailable(0) Then ‘Just check for file
          haveqt = true
     End If
End If
// — >
</script>

<script language="Javascript">
<! — hide from pre-script browsers
     if (navigator.plugins) {
          for (i=0; i < navigator.plugins.length; i++ ) {
               if (navigator.plugins[i].name.indexOf("QuickTime") >= 0)
                    { haveqt = true; }
            }
        }
// — >
</script>
</head>

<body bgcolor="#ffffff">
<H1>Check for QuickTime</H1>

<script language="Javascript">
<! — hide from pre-script browsers
    if (haveqt)
    {document.write(’<embed src="hotfire.mov" width=120 height=51>’);}
    else
    {document.write(’You do not seem to have " +
    "<a href="http://www.apple.com/quicktime">QuickTime</a>’);}
// — >
</script>

<noscript>
Your browser doesn’t support scripting, so you can’t check for QuickTime.
</noscript>