We help IT Professionals succeed at work.

Javascript and using SSI exec command

Medium Priority
682 Views
Last Modified: 2013-11-18
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
Comment
Watch Question

Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION

Commented:
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
Michel PlungjanIT Expert
CERTIFIED EXPERT
Top Expert 2009

Commented:
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

Michel PlungjanIT Expert
CERTIFIED EXPERT
Top Expert 2009

Commented:
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
Michel PlungjanIT Expert
CERTIFIED EXPERT
Top Expert 2009

Commented:
Did the above accepted answer solve your question?

If yes, how and if not why accept it?

Michel

Author

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
Michel PlungjanIT Expert
CERTIFIED EXPERT
Top Expert 2009

Commented:
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
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.