JavaScriptでジャンプがうまくいかないときは?

[上に] [前に] [次に]
ゆき 1998/01/21(水) 16:01:34
お客様をバージョン別に振り分けてジャンプさせたいのですが、
NN3.0xだけエラーが出てしまいます。
なぜか教えてください。
ちなみに、この下にnn4.xやie3.x、4.xを分けるif文が続き、
他ではでは正常動作します。

こんなん書いてます。

<BODY onLoad="setTimeout('next()',1500)">
<SCRIPT LANGUAGE="JavaScript">
<!--
var msg = "あなたはバージョン" + navigator.appVersion + "をお使いですね<br>";
document.write( msg );

var browser = navigator.appName.charAt( 0 );
var version = navigator.appVersion.charAt( 0 );
if( browser == "M" && version == "4" ){
    document.write( "NN 3.xのページへジャンプします" );
function next(){
location.href="nw_home.html";
}
}
//-->
</SCRIPT>
</BODY>
</HTML>

匿名希望 1998/01/21(水) 19:47:01
NN 3.xなら、
if( browser == "M" && version == "4" ){
ここは"N"と"3"じゃあないかな?

ゆき 1998/01/21(水) 21:45:27
申し訳ありません。
ここでのミスです。
実際に書いてるページでは、
if( browser == "N" && version == "3" ){
と書いております・・・

hiro-kim 1998/01/22(木) 07:24:28
NN3.0xでちょっと試してみました。
function 自作関数名() {……} の構文はあくまで,主ルーチンの外部であらかじめ関数を定義しておくための文法として解釈しているようですね。関数の定義と実行を同時におこなう,今風のプログラム言語の文法は使えないわけです。
  <HEAD>
  <SCRIPT LANGUAGE="JavaScript">
  <!--
  function next(){
    location.href="nw_home.html";
  }
  //-->
  </SCRIPT>
  </HEAD>
のように書いておけば,前もって,関数の定義と構文チェックはできますから,あとは,次のように関数を呼ぶだけです。
  if(……){
    document.write(……);
    next();
  }
もちろん,はなから関数を使わずに,このように書いてもよいのですけれど。
  if(……){
    document.write(……);
    location.href="nw_home.html";
  }

ゆき 1998/01/22(木) 11:20:15
[[解決]]
hiro-kimさんどうもありがとうございました!!

[上に] [前に] [次に]