Javascript and using SSI exec command

Hello,

I have the following problem using SSI together with
Javascript on MSIE or NEtscape or other browsers.

The folowing code wil look if you use frames or not.
The frame parts are called down and down_wevers.
There are 3 frame parts.
The script will work without SSI. I use it on othere applications.

I have now the following problem.
I wan't to use the exec SSI command.
But it must only be executed when goodlocation is not true and goodlocation_wevers is also not true.
I put the command to the else part.
But only putting it there will result in always executing the script as soon the html file is read by a browser.
I wan't it only be executed when the goodlocations are false!!!

I have tryed also the following.

<script language="JavaScript">
<!--

function FrameRedirectAXS()
{  
goodlocation=false
goodlocation_wevers=false
if (parent.frames.length != 3) goodlocation=false;
if (parent.frames.length == 3) {
      if (parent.frames[1].name == "down") goodlocation=true;
      if (parent.frames[1].name == "down_wevers") goodlocation_wevers=true;
}
if (goodlocation == true) document.write("");
else if (goodlocation_wevers == true) document.write("");
else document.write("<--#exec " + "cgi=\"/cgi-bin/axs/ax1.pl\"" + "-->");

}
//-->
</SCRIPT>

This wil result in a line <--#exec cgi="/cgi-bin/axs/ax1.pl"-->
this is the SSI line command.
But this tiime it will not be executed.
The browser will write down the
 <--#exec cgi="/cgi-bin/axs/ax1.pl"--> line and do noting with it.

It is possible for me to use SSI and I use it in SHTML files.

I call the javasript by using:

<SCRIPT LANGUAGE="JavaScript">
FrameRedirectAXS()
</SCRIPT>

How can I solve this problem????

Greeting Michel Weegerink
E-mail: mmcw@worldonline.nl
mmcwAsked:
Who is Participating?
 
Visible_ManConnect With a Mentor Commented:
This only a small thing but JS is senitive to small things.  After an If...Then or Else...then logic put Brackets like so.
That maybe the problem bescause JS is very picky with stuff like that Hope it works :)

<script language="JavaScript">
    <!--

    function FrameRedirectAXS()
    {  
    goodlocation=false
    goodlocation_wevers=false
    if (parent.frames.length != 3) {goodlocation=false};
    if (parent.frames.length == 3) {
    if (parent.frames[1].name == "down") {goodlocation=true};
    if (parent.frames[1].name == "down_wevers") {goodlocation_wevers=true};
    }
    if (goodlocation == true) {document.write("")};
    else if (goodlocation_wevers == true) {document.write("")};
    else {document.write("<--#exec " + "cgi=\"/cgi-bin/axs/ax1.pl\"" + "-->")};

    }
    //-->
    </SCRIPT>
0
 
jbirkCommented:
The problem is not due to syntax.  You cannot use clientside javascript to decide how server side includes will load.  The reason is because the include occurs when the file is first requested and the operation is performed by the server.  The browser has absolutely no idea that a server side include was even on the page.  And the JavaScript you wrote it client side, which means it is executed by the browser.  So once it has made it to the browser the server is finished with it, meaning that no more SSI's can be included.  When the browser writes out the SSI command exec, it just thinks it's a comment, and has no idea what to do with it.  If you want to do something like this, you'll have to either make seperate pages (one with the SSI and one without) and then decide which page will be loaded with javascript, or use something like server side javascript (which I don't really know how to use as the servers I use don't support it).

Hope this clears things up,
Josh
0
 
Michel PlungjanIT ExpertCommented:
Also please remember that the script is inside comments
<SCRIPT><!--

--></SCRIPT>

and any SSI inside the script will never be executed even if you could make it work.
What is inside the ssi - could it perhaps be coded differently or can you have an
html file you load into a hidden frame that contains the ssi?
as in

 if (goodlocation == true) {document.write("")};
else if (goodlocation_wevers == true) {document.write("")};
else self.location = 'ssihtml.html';

Michel

0
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
Michel PlungjanIT ExpertCommented:
Why not put the <SCRIPT><!--  and --></SCRIPT> and the rest of the html in the
/cgi-bin/axs/ax1.pl, then you could even do a

 if (goodlocation == true) {document.write("")};
       else if (goodlocation_wevers == true) {document.write("")};
       else self.location = '/cgi-bin/axs/ax1.pl';

Michel
0
 
Michel PlungjanIT ExpertCommented:
Did the above accepted answer solve your question?

If yes, how and if not why accept it?

Michel
0
 
mmcwAuthor Commented:
It is not exacly what I mean al those answers but I now know that it is not possible in javascript and solved the problem an other way. Thank you for your support
0
 
Michel PlungjanIT ExpertCommented:
Would you then in the future please reject the answer or have the customer services remove it?
Otherwise it will be autograded and put in the pool of accepted answers and Visible_Man's answer is a wrong rehash of the version answered in the CGI area.

Michel
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.