471,571 Members | 1,511 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,571 software developers and data experts.

trapping JS errors

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 %>
Jul 20 '05 #1
1 3247
"CAFxX" <ca***@n-side.it> writes:
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".

<body onload="fadein(document.getElementById('test'))" onerror="noJS()">
<div id="test" style="visibility: hidden;">


Good luck
/L
--
Lasse Reichstein Nielsen - lr*@hotpop.com
Art D'HTML: <URL:http://www.infimum.dk/HTML/randomArtSplit.html>
'Faith without judgement merely degrades the spirit divine.'
Jul 20 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

6 posts views Thread by Eitan | last post: by
13 posts views Thread by Thelma Lubkin | last post: by
2 posts views Thread by Fred Nelson | last post: by
2 posts views Thread by Captain Nemo | last post: by
9 posts views Thread by 47computers | last post: by
1 post views Thread by asearle | last post: by
reply views Thread by Vinnie | last post: by
reply views Thread by lumer26 | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.