Go directly to desired page, in JavaScript

B

Bert Visscher

Hello everyone,

I would like to let visitors of my website be able to go directly to a
desired page, by using a URL like www.example.com?progname. I thought I
could do this as follows:

<html>
<frameset rows="88,*">
<frame name="head" noresize src="head.htm" />
<frameset cols="152,*">
<frame name="menu" noresize src="menu.htm" />
<script language="JavaScript">
prog = location.search
prog = prog.substr(1)
prog = prog.split("&")
if (prog=="progname") { document.write ("<frame name='body' noresize
src='progpage.htm' />") }
else if (prog==...
....
else { document.write ('<frame name="body" noresize src="mainpage.htm"
/>') }
</script>
</frameset>
</frameset>
</html>

I see that the above code doesn't produce a page for the body, but I can't
see why? Could anybody please tell me what I'm overlooking?

TIA and regards, Bert Visscher.
 
B

Bert Visscher

Dag Evertjan,

The way I interpret your reply, the following code should work:

<html>
<frameset rows="88,*">
<frame name="kop" noresize src="kop.htm" />
<frameset cols="152,*">
<frame name="menu" noresize src="menu.htm" />
<script language="JavaScript">
prog = location.search
prog = prog.substr(1)
prog = prog.split("&")
if (prog[0]=="gezondheidslijn") { document.write ("<frame name='body'
src='pi-gezondheidslijn.htm' />") }
else { document.write ("<frame name='body' src='hoofdpagina.htm' />") }
</script>
</frameset>
</frameset>
</html>

I'm afraid it doesn't. Just like before, I see the top and left frame
appear, but there's no body.

TIA and regards, Bert V.

Evertjan. said:
Bert Visscher wrote on 10 aug 2004 in comp.lang.javascript:
prog = prog.split("&")
if (prog=="progname") {

[follow up to: comp.lang.javascript]

Dag Bert,

prog is not a string but an array.
If the calling url was:

http://mySite.nl/test.html?x=progname&y=blah

if (prog[0] == "x=progname") {
 
E

Evertjan.

Bert Visscher wrote on 10 aug 2004 in comp.lang.javascript:
Evertjan. said:
Bert Visscher wrote on 10 aug 2004 in comp.lang.javascript:
prog = prog.split("&")
if (prog=="progname") {

[follow up to: comp.lang.javascript]

Dag Bert,

prog is not a string but an array.
If the calling url was:

http://mySite.nl/test.html?x=progname&y=blah

if (prog[0] == "x=progname") {
The way I interpret your reply, the following code should work:

<html>
<frameset rows="88,*">
<frame name="kop" noresize src="kop.htm" />
<frameset cols="152,*">
<frame name="menu" noresize src="menu.htm" />
<script language="JavaScript">
prog = location.search
prog = prog.substr(1)
prog = prog.split("&")
if (prog[0]=="gezondheidslijn") { document.write ("<frame
name='body'
src='pi-gezondheidslijn.htm' />") }
else { document.write ("<frame name='body' src='hoofdpagina.htm'
/>") }
</script>
</frameset>
</frameset>
</html>

I'm afraid it doesn't. Just like before, I see the top and left frame
appear, but there's no body.

This
= if (prog[0]=="gezondheidslijn") =
would require zoiets als:
http://mySite.nl/test.html?gezondheidslijn&y=blah
This cannot be the output of a <form>

Do you get javascript errors ?

Please start debugging by inserting a handful of alert()s:

<frame name='body'
<script type="text/JavaScript"> // the 'language=' is depriciated
var prog = location.search
alert(prog) // is there a & in the string ???
prog = prog.substr(1)
alert(prog) // do you see the same without the '?' ?
prog = prog.split("&")
alert(prog[0]) // do you see 'gezondheidslijn' ?
if (prog[0]=="gezondheidslijn"){
alert('ja') // 'if' is given true
document.write("src='pi-gezondheidslijn.htm'")
}
else {
alert('nee') // false
document.write("src='hoofdpagina.htm'")
}
</script>
/>

Are the two links correct ?
 
B

Bert Visscher

Evertjan. said:
Bert Visscher wrote on 10 aug 2004 in comp.lang.javascript:
Evertjan. said:
Bert Visscher wrote on 10 aug 2004 in comp.lang.javascript:
prog = prog.split("&")
if (prog=="progname") {

[follow up to: comp.lang.javascript]

Dag Bert,

prog is not a string but an array.
If the calling url was:

http://mySite.nl/test.html?x=progname&y=blah

if (prog[0] == "x=progname") {
The way I interpret your reply, the following code should work:

<html>
<frameset rows="88,*">
<frame name="kop" noresize src="kop.htm" />
<frameset cols="152,*">
<frame name="menu" noresize src="menu.htm" />
<script language="JavaScript">
prog = location.search
prog = prog.substr(1)
prog = prog.split("&")
if (prog[0]=="gezondheidslijn") { document.write ("<frame
name='body'
src='pi-gezondheidslijn.htm' />") }
else { document.write ("<frame name='body' src='hoofdpagina.htm'
/>") }
</script>
</frameset>
</frameset>
</html>

I'm afraid it doesn't. Just like before, I see the top and left frame
appear, but there's no body.

This
= if (prog[0]=="gezondheidslijn") =
would require zoiets als:
http://mySite.nl/test.html?gezondheidslijn&y=blah
This cannot be the output of a <form>

Do you get javascript errors ?

Please start debugging by inserting a handful of alert()s:

<frame name='body'
<script type="text/JavaScript"> // the 'language=' is depriciated
var prog = location.search
alert(prog) // is there a & in the string ???
prog = prog.substr(1)
alert(prog) // do you see the same without the '?' ?
prog = prog.split("&")
alert(prog[0]) // do you see 'gezondheidslijn' ?
if (prog[0]=="gezondheidslijn"){
alert('ja') // 'if' is given true
document.write("src='pi-gezondheidslijn.htm'")
}
else {
alert('nee') // false
document.write("src='hoofdpagina.htm'")
}
</script>
/>

Are the two links correct ?

Hoi Evertjan,

I flipped a couple of quotes, and ended up with the following complete code:

<html>
<frameset rows="88,*">
<frame name="kop" noresize src="kop.htm" />
<frameset cols="152,*">
<frame name="menu" noresize src="menu.htm" />
<frame name="body"
<script type="text/JavaScript">
var prog = location.search
alert(prog) // is there a & in the string ???
prog = prog.substr(1)
alert(prog) // do you see the same without the '?' ?
prog = prog.split("&")
alert(prog[0]) // do you see 'gezondheidslijn' ?
if (prog[0]=="gezondheidslijn")
{
alert("ja") // 'if' is given true
document.write('src="pi-gezondheidslijn.htm"')
}
else
{
alert("nee") // false
document.write('src="hoofdpagina.htm"')
}
</script>
/>
</frameset>
</frameset>
</html>

I think we're getting closer:
This time around, regardless of whether I add "?gezondheidslijn", I get a
body...but it stays blank. And, as if that's not curious enough, I'm not
getting any of the alerts.

Oh, I nearly forgot to write that I'm not getting any error messages.

TIA and regards, Bert V.
 
E

Evertjan.

Bert Visscher wrote on 12 aug 2004 in comp.lang.javascript:
I think we're getting closer:
This time around, regardless of whether I add "?gezondheidslijn", I
get a body...but it stays blank. And, as if that's not curious enough,
I'm not getting any of the alerts.

Oh, I nearly forgot to write that I'm not getting any error messages.

Tja, Bert, dan wordt de hele script niet uitgevoerd in een frame
declaratie!!!

Dit werkt wel:

<html>

<script type="text/JavaScript">
function kies(x){
myBody.location.href=
(location.search.substr(1).split("&")[0]==
"gezondheidslijn")
?"pi-gezondheidslijn.htm":"hoofdpagina.htm"
}
</script>

<frameset rows="88,*" onLoad="kies()">
<frame name="kop" noresize src="kop.htm" />
<frameset cols="152,*">
<frame name="menu" noresize src="menu.htm" />
<frame name="myBody" />
</frameset>
</frameset>

</html>

[ik heb de code sterk verkort en de naam "body" vervangen,
omdat dat soms een "reserved word" zou kunnen zijn.]
 
J

Jim Marquardson

I think we're getting closer:
This time around, regardless of whether I add "?gezondheidslijn", I get a
body...but it stays blank. And, as if that's not curious enough, I'm not
getting any of the alerts.

Oh, I nearly forgot to write that I'm not getting any error messages.

TIA and regards, Bert V.

I had a similar problem. I got it to work with iframes using the
following:

<script language="JavaScript">
page = "main.htm"; //default page
if(location.search) page = location.search.substring(1);

//insert extra logic here if want

document.write('<iframe src="' + page + '" id="myIframe"
name="myIframe" width="630" scrolling="no"
frameborder="1"></iframe>');
</script>

You could add logic in there, like:

if (page = "help") page = help.html;

I hope this helps.

Jim
 

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,756
Messages
2,569,534
Members
45,007
Latest member
OrderFitnessKetoCapsules

Latest Threads

Top