whats wrong here?

I

iz0nlee

can anybody tell me what is wrong here, I got this shockwave test from
javascript in easy steps but it doesnt open the pages required

<html>
<head>
<script type = "text/javascript">
if ( (navigator.appName == "Microsoft Internet Explorer"
&& navigator.appVersion.IndexOf ( "Mac" ) == -1
&& navigator.appVersion.IndexOf ( "3.1" ) == -1)
|| navigator.plugins && navigator.plugins [ "Shockwave Flash" ] )
|| navigator.plugins [ "Shockwave Flash 2.0" ] )
window.location = "index01.html" ;
else
window.location = "index.html" ;
</script>
</head>
<body>
</body>
</html>

the index01 has a flash content, the index doesnt

TIA
 
E

Evertjan.

iz0nlee wrote on 12 jul 2003 in comp.lang.javascript:
can anybody tell me what is wrong here, I got this shockwave test from
javascript in easy steps but it doesnt open the pages required

<html>
<head>
<script type = "text/javascript">
if ( (navigator.appName == "Microsoft Internet Explorer"
&& navigator.appVersion.IndexOf ( "Mac" ) == -1
&& navigator.appVersion.IndexOf ( "3.1" ) == -1)
|| navigator.plugins && navigator.plugins [ "Shockwave Flash" ] )
|| navigator.plugins [ "Shockwave Flash 2.0" ] )

4 '(' and 5 ')'
window.location = "index01.html" ;

[I think no ';' here]
 
I

iz0nlee

thanks for the prompt reply,
I am not quite sure what this means

4 '(' and 5 ')'

I tried removing the semicolon from the first url but it didnt work.

I am running winXP and IE6, if that makes a difference.
when I click the 'index02.htm' file it just brings that blamk page up
instead of redirecting to index01.htm as it should.
thanks again though
Evertjan. said:
iz0nlee wrote on 12 jul 2003 in comp.lang.javascript:
can anybody tell me what is wrong here, I got this shockwave test from
javascript in easy steps but it doesnt open the pages required

<html>
<head>
<script type = "text/javascript">
if ( (navigator.appName == "Microsoft Internet Explorer"
&& navigator.appVersion.IndexOf ( "Mac" ) == -1
&& navigator.appVersion.IndexOf ( "3.1" ) == -1)
|| navigator.plugins && navigator.plugins [ "Shockwave Flash" ] )
|| navigator.plugins [ "Shockwave Flash 2.0" ] )

4 '(' and 5 ')'
window.location = "index01.html" ;

[I think no ';' here]
else
window.location = "index.html" ;
</script>
</head>
<body>
</body>
</html>
 
J

John G Harris

Evertjan. said:
iz0nlee wrote on 12 jul 2003 in comp.lang.javascript:
window.location = "index01.html" ;

[I think no ';' here]
<snip>

The semicolon is perfectly respectable here. Remember that complicated
statements are built from simpler statements, and that some kinds of
statement can (must in C, C++, Java) end in a semicolon.

If a semicolon looks strange think of it as being inside its statement,
not as separate punctuation outside.

John
 
E

Evertjan.

John G Harris wrote on 12 jul 2003 in comp.lang.javascript:
Evertjan. said:
iz0nlee wrote on 12 jul 2003 in comp.lang.javascript:
window.location = "index01.html" ;

[I think no ';' here]
<snip>

The semicolon is perfectly respectable here. Remember that complicated
statements are built from simpler statements, and that some kinds of
statement can (must in C, C++, Java) end in a semicolon.

If a semicolon looks strange think of it as being inside its statement,
not as separate punctuation outside.

You are right, of cource, John.

if(condition)
statementtrue;
else
statementfalse;
statementalways;

The problem in my mind was, that without {} only one statement is
allowed.

I think it was Pascal syntax that disallowed a ; in that position
otherwise the "else" was orphaned ?
 
I

iz0nlee

Thanks to all of you who have commented, I found the errant '(' and script
is now as below and I've checked it till I'm blue in the face but it still
only returns its own page and doesnt jump to the 'index01'page as it should
(I think)

<html>
<head>
<script type = "text/javascript">
if ( (navigator.appName == "Microsoft Internet Explorer"
&& navigator.appVersion.IndexOf ( "Mac" ) == -1
&& navigator.appVersion.IndexOf ( "3.1" ) == -1)
||
(navigator.plugins
&& navigator.plugins[ "Shockwave Flash" ] )
||
navigator.plugins [ "Shockwave Flash 2.0" ] )
window.location = "index01.htm";
else
window.location = "index.htm" ;
</script>
</head>
<body>
failed again
</body>
</html>

I'm sure there must be a simple explanation, perhaps its something to do
with the 'pipe' characters, I'm not sure what they do, but for the time
being I might just put the flash pages up for now as most people use
shockwave capable browsers anyway and my site doesnt get hits in the
millions exactly so it probably wont matter.
Thanks for all your suggestions and interest
regards
 
E

Evertjan.

iz0nlee wrote on 13 jul 2003 in comp.lang.javascript:
Thanks to all of you who have commented, I found the errant '(' and
script is now as below and I've checked it till I'm blue in the face
but it still only returns its own page and doesnt jump to the
'index01'page as it should (I think)

<html>
<head>
<script type = "text/javascript">
if ( (navigator.appName == "Microsoft Internet Explorer"
&& navigator.appVersion.IndexOf ( "Mac" ) == -1
&& navigator.appVersion.IndexOf ( "3.1" ) == -1)
||
(navigator.plugins
&& navigator.plugins[ "Shockwave Flash" ] )
||
navigator.plugins [ "Shockwave Flash 2.0" ] )
window.location = "index01.htm";
else
window.location = "index.htm" ;
</script>
</head>
<body>
failed again
</body>
</html>

Now start testing by deviding the problem, make three seperate testfiles
and execute them in the same directory as your present html-file:

============ test1.html ====================

<script type = "text/javascript">
if ( true )
window.location = "index01.htm";
else
window.location = "index.htm" ;
</script>

============ test2.html ====================

<script type = "text/javascript">
if ( false )
window.location = "index01.htm";
else
window.location = "index.htm" ;
</script>

============ test3.html ====================

<script type = "text/javascript">
result =(navigator.appName == "Microsoft Internet Explorer"
&& navigator.appVersion.IndexOf ( "Mac" ) == -1
&& navigator.appVersion.IndexOf ( "3.1" ) == -1)
||
(navigator.plugins
&& navigator.plugins[ "Shockwave Flash" ] )
||
navigator.plugins [ "Shockwave Flash 2.0" ] )

alert(result) // must be true or false
</script>

===============================================

And let us hear the results.
 
I

iz0nlee

I did just what you said and found when I put the Netscape part in it
failed.
I re wrote it like this and it works though I dont have netscape to test it,
(nor Mac or win3.1 for that matter)
I'm happy it works now though and thanks for all your help.
I'll put the script in the head of index.htm then it should transfer most
people to index01

regards
p.s. I answered this a few minutes ago but sent it 'reply' instead of
'reply group' by accident. Sorry

<html>
<head>
<script type = "text/javascript">
if ( navigator.appName == "Microsoft Internet Explorer"
&& navigator.appVersion.indexOf("Mac") == -1
&& navigator.appVersion.indexOf("3.1") == -1
|| navigator.plugins ["Shockwave Flash"]
|| navigator.plugins ["Shockwave Flash 2.0"]
)
window.location = "index01.htm";
else
window.location = "index.htm";
</script>
</head>
<body>
failed again
</body>
</html>
Evertjan. said:
iz0nlee wrote on 13 jul 2003 in comp.lang.javascript:
Thanks to all of you who have commented, I found the errant '(' and
script is now as below and I've checked it till I'm blue in the face
but it still only returns its own page and doesnt jump to the
'index01'page as it should (I think)

<html>
<head>
<script type = "text/javascript">
if ( (navigator.appName == "Microsoft Internet Explorer"
&& navigator.appVersion.IndexOf ( "Mac" ) == -1
&& navigator.appVersion.IndexOf ( "3.1" ) == -1)
||
(navigator.plugins
&& navigator.plugins[ "Shockwave Flash" ] )
||
navigator.plugins [ "Shockwave Flash 2.0" ] )
window.location = "index01.htm";
else
window.location = "index.htm" ;
</script>
</head>
<body>
failed again
</body>
</html>

Now start testing by deviding the problem, make three seperate testfiles
and execute them in the same directory as your present html-file:

============ test1.html ====================

<script type = "text/javascript">
if ( true )
window.location = "index01.htm";
else
window.location = "index.htm" ;
</script>

============ test2.html ====================

<script type = "text/javascript">
if ( false )
window.location = "index01.htm";
else
window.location = "index.htm" ;
</script>

============ test3.html ====================

<script type = "text/javascript">
result =(navigator.appName == "Microsoft Internet Explorer"
&& navigator.appVersion.IndexOf ( "Mac" ) == -1
&& navigator.appVersion.IndexOf ( "3.1" ) == -1)
||
(navigator.plugins
&& navigator.plugins[ "Shockwave Flash" ] )
||
navigator.plugins [ "Shockwave Flash 2.0" ] )

alert(result) // must be true or false
</script>

===============================================

And let us hear the results.
 
E

Evertjan.

iz0nlee wrote on 13 jul 2003 in comp.lang.javascript:
I'll put the script in the head of index.htm then it
should transfer most people to index01
[........]
else
window.location = "index.htm";

The others will keep reloading index.htm again and again ??????????
 
E

Evertjan.

iz0nlee wrote on 13 jul 2003 in comp.lang.javascript:
Evertjan. said:
iz0nlee wrote on 13 jul 2003 in comp.lang.javascript:
I'll put the script in the head of index.htm then it
should transfer most people to index01
[........]
else
window.location = "index.htm";

The others will keep reloading index.htm again and again ??????????
oops, didnt think of that, i will put it in a separate file , index, and
call the pages index01 and index02.
thanks for a timely rescue
regards

Or just delete thes two scriptlines:

else
window.location = "index.htm";
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top