trapping JS errors

C

CAFxX

i wrote this code that is meant to check if the client browser generates an
error when executing the blendtrans statement.
unfortunately it's not working as i wished.
this page is called check.asp and the site main page is called index.asp
all the site's pages will use the JS cookie to decide what script will have
to be used, the one using the blendtrans method or another one that simply
shows/hides the obj.
it's a mix of JS and ASP.
thanks to everyone for your help.

<% if request("js") = false or request.cookies("js") = false then %>
<% response.cookies("js") = false %>
<html>
<head>
<script language=javascript>
function go_on() {
redirect = eval(self.location="index.asp");
return true;
}
</script>
</head>
<body onLoad="go_on()">
</body>
</html>
<% else %>
<html>
<head>
<title="N-Side - Checking browser">
<link href="Gatherer.css" rel="stylesheet" type="text/css">
<script language=javascript>
function fadein(obj) {
myObj = eval(obj);
window.onError = noJS();
myObj.filters.blendTrans.apply();
myObj.style.visibility = "visible";
myObj.filters.blendTrans.play();
redirect = eval(self.location='index.asp');
return true;
}
function noJS() {
redirect = eval(self.location='check.asp?js=false'>;
return true;
}
</script>
</head>
<body onLoad="fadein(test)" onError="noJS()">
<div id="test" style="visibility: hidden;">
</body>
<% end if %>
 
L

Lasse Reichstein Nielsen

CAFxX said:
i wrote this code that is meant to check if the client browser generates an
error when executing the blendtrans statement.

How is it supposed to check that?
unfortunately it's not working as i wished.

What did you wish? What really happened?
this page is called check.asp and the site main page is called index.asp
all the site's pages will use the JS cookie to decide what script will have
to be used, the one using the blendtrans method or another one that simply
shows/hides the obj.
it's a mix of JS and ASP.

You could just have posted the HTML, as posted to the client. The
error should be in that part. In this case, the ASP part is so small
and unintrusive that it is not a problem
<script language=javascript>

<script type="text/javascript">
The type attribute is mandatory and the language attribute is deprecated
in HTML 4.
function go_on() {
redirect = eval(self.location="index.asp");

This will probably redirect the page before the error appears, but
it is an error. You don't need eval for anything on this page, and
probably not on any other page you make.
Just use:
self.location.href="index.asp";

If the expression inside eval hadn't redirected the page, it would
evaluate to "index.asp", which you then try to evaluate as a
Javascript expression. There is no object called "index", so that gives
an error.
return true;

You won't get to return either, the page is already gone.
<script language=javascript>

Again type="text/javascript"
function fadein(obj) {
myObj = eval(obj);

You don't need eval here. The value of "obj" is an object, and using
eval on that just gives itself again. If obj had been a string, it
would probably still not be what you wanted.
window.onError = noJS();

The on-event handlers are not subcapitalized in Javascript.
You wrote onError in the HTML tag, but that is because HTML is not
case sensitive. Javascript is.

You don't want to call the noJS function now, just assign it as a
handler.

window.onerror = noJS;

I am not familiar with the onerror handler for windows, so I'll assume
you know what you are doing. Ditto for blendTrans.
myObj.filters.blendTrans.apply();
myObj.style.visibility = "visible";
myObj.filters.blendTrans.play();
redirect = eval(self.location='index.asp');
Again:
self.location.href="index.asp";

return true;
}
function noJS() {
redirect = eval(self.location='check.asp?js=false'>;
and again :)
self.location.href="check.asp?js=false";
return true;
}
<body onLoad="fadein(test)" onError="noJS()">

This will only work in very few browsers, those that make a
global variable, "test", referring to the element with id="test".

<div id="test" style="visibility: hidden;">

Good luck
/L
 

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

Forum statistics

Threads
473,754
Messages
2,569,525
Members
44,997
Latest member
mileyka

Latest Threads

Top