WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:pluginチェックで飛ばす秒数

0:[投稿] akn [2002/06/03 10:31 ][環境:WIN+IE わからない]

<meta>タグを使って自動的にジャンプさせていたページに
shockwave flashに対するプラグインチェックを追加する場合、
下のようなjavascriptを使って判別させる事ができると思うんですが、
何秒後にジャンプさせるかを指定することはできないでしょうか。
素人同然の私的にはautoGoの部分を秒数にするとか・・?と思っていたのですが
良く分かりません。どうか御教示ください。

<script language="JavaScript">
<!--
function MM_checkPlugin(plgIn, theURL, altURL, autoGo) { //v3.0
 var ok=false; document.MM_returnValue = false;
 with (navigator) if (appName.indexOf('Microsoft')==-1 || (plugins && plugins.length)) {
   ok=(plugins && plugins[plgIn]);
 } else if (appVersion.indexOf('4.01')==-1) { //not Netscape or Win3.1
   if (plgIn.indexOf("Flash")!=-1 && window.MM_flash!=null) ok=window.MM_flash;
   else if (plgIn.indexOf("Director")!=-1 && window.MM_dir!=null) ok=window.MM_dir;
   else ok=autoGo; }
 if (!ok) theURL=altURL; if (theURL) window.location=theURL;
}
//-->
</script>


1:[回答] ナン [2002/06/04 11:35 ]

試していないけど、たとえば、5秒後の例で。
最後のwindow.location=theURL;

setTimeout("window.location="+theURL,5000);
とか。


2:[質問] akn [2002/06/04 14:51 ]

ナンさま。ありがとうございます。
書かれていた通りに修正してみましたが動かないようです。修正したHTMLのソースですが、
間違いがありましたら御指摘いただけると嬉しいです。
また、onload=settimeoutなんかを使って、それにjavascriptのプラグインチェックを
実行させられないかと試してみましたがダメでした。

じゃあ、<meta http-equiv="refresh" content="3; url">を生かしておいて、次でプラグインチェック
やればいいぢゃんということになるのかもしれないんですけど、一瞬読み込み中のページが表示される
のを避けたいので・・。
ただ、onunloadでのチェックも動かなかった現象に遭ったのですが、私が「ページ切換え時」の意味を
とり違えているのでしょうか?

<html>
<head>
<title>a</title>

<script language="JavaScript">
<!--
function MM_checkPlugin(plgIn, theURL, altURL, autoGo) { //v4.0
 var ok=false; document.MM_returnValue = false;
 with (navigator) if (appName.indexOf('Microsoft')==-1 || (plugins && plugins.length)) {
   ok=(plugins && plugins[plgIn]);
 } else if (appVersion.indexOf('3.1')==-1) { //not Netscape or Win3.1
   if (plgIn.indexOf("Flash")!=-1 && window.MM_flash!=null) ok=window.MM_flash;
   else if (plgIn.indexOf("Director")!=-1 && window.MM_dir!=null) ok=window.MM_dir;
   else ok=autoGo; }
 if (!ok) theURL=altURL; if (theURL) setTimeout("window.location="+theURL,5000);
}
//-->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="MM_checkPlugin('Shockwave Flash','','index_html',false);return document.MM_returnValue">
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
 <tr>
   <td>
     <div align="center"><a href="index_fl.html"><img src="img/index/imgnewseikei.gif" width="373" height="165" border="0"></a></div>
   </td>
 </tr>
</table>
</body>
<script name="Used by MM_checkPlugin" language="javascript">
<!--
with (navigator) if (appName.indexOf('Microsoft')!=-1 && appVersion.indexOf('Mac')==-1) document.write(''+
'<scr'+'ipt language="VBScript">\nOn error resume next\n'+
'MM_dir = IsObject(CreateObject("SWCtl.SWCtl.1"))\n'+
'MM_flash = NOT IsNull(CreateObject("ShockwaveFlash.ShockwaveFlash"))\n</scr'+'ipt>');
//-->
</script>
</html>


3:[回答] ナン [2002/06/04 15:32 ]

setTimeout("window.location="+theURL,5000);

setTimeout("window.location='"+theURL+"';",5000);
に変更して、どうだ!


4:[完了] akn [2002/06/04 16:43 ]

うわぁ・・できました。
macintosh IE5、WindowsIE5.5でプラグイン外した状態、
ActiveXを無効にした状態で共にちゃんと判別できました。
自分なりに他の方法はないかとか、騙しだましで逃げる(汗)方法はないかと少しやってみましたが、教えていただいた方法が
スマートで完璧なんですね!
ありがとうございました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World