need help understanding this code.

E

Elmbrook

Hi,

I've been trying to figure out this javascript code used here (this code is
used for supplying browser info to a tracking company):

In particular I'm trying to understand this line:
EXd=document;EXw?"":EXw="na";EXb?"":EXb="na";
and this one: EXd.write("<img
src=\"http://t0.extreme-dm.com","/0.gif?tag=abc&j=y&srw="+EXw+"&srb="+EXb+"&
","l="+escape(EXd.referrer)+"\" height=1 width=1>");//-->

Why do they have a variable j=y defined? There is no 'j' variable defined
in the code.

If I modify the http://t0.extreme-dm.com and send the results to my ASP page
and use Querystrings to see what the values are, I only get the Screen width
and colour depth values. The referrer information is not showing. I also
don't understand how they can extract users country domain from this code.

Thanks
Tristan
www.backpackpro.com


----------- Complete code below ---------------


<a target="_top" href="http://t.extreme-dm.com/?login=abc"> <img
src="http://u1.extreme-dm.com/i.gif" height=2
border=0 width=2 alt=""></a>
<script language="javascript1.2"><!--
EXs=screen;EXw=EXs.width;navigator.appName!="Netscape"?
EXb=EXs.colorDepth:EXb=EXs.pixelDepth;//-->
</script>
<script language="javascript"><!--
EXd=document;EXw?"":EXw="na";EXb?"":EXb="na";
EXd.write("<img src=\"http://t0.extreme-dm.com",
"/0.gif?tag=abc&j=y&srw="+EXw+"&srb="+EXb+"&",
"l="+escape(EXd.referrer)+"\" height=1 width=1>");//-->
</script>
</p>
<noscript><img height=1 width=1 alt=""
src="http://t0.extreme-dm.com/0.gif?tag=abc&j=n"></noscript>
 
B

Bryan Field-Elliot

That's some dense shit, dude. But seriously I don't think you quoted all
the relevent code to make heads or tails of this, looks like you only
quoted the last line or two.

These two statements:

EXw?"":EXw="na";
EXb?"":EXb="na";

All they do is, if EXw and EXb are null, then set them to "na" (as in
Not Available?). But it must be somewhere earlier in the code where they
are setting EXw and EXb to initial values in the first place.

In regards to the "j=y" statement; the way you've quoted the code, the
variable j (and value y) are used entirely on the server. There is no
client-side javascript here with a variable j and value of y. You need
to look on the server side script (if you have it) to find out what the
"j=y" is all about.

Did you inherit this code from another developer, or are you trying to
*ahem* learn from some other site's techniques?
 
H

Hywel Jenkins

Hi,

I've been trying to figure out this javascript code used here (this code is
used for supplying browser info to a tracking company):

In particular I'm trying to understand this line:
EXd=document;

Set EXd to the "document" object;
EXw?"":EXw="na";

If EXw is empty, set it to "na".
EXb?"":EXb="na";

If EXb is empty, set it to "na".
and this one: EXd.write("<img
src=\"http://t0.extreme-dm.com","/0.gif?tag=abc&j=y&srw="+EXw+"&srb="+EXb+"&
","l="+escape(EXd.referrer)+"\" height=1 width=1>");//-->

That writes out an image using the values the script has just assigned.

Why do they have a variable j=y defined? There is no 'j' variable defined
in the code.

The "j" isn't used in the code you've given here - it may be used in the
server-side script that servers up the image, though. It's part of the
URL, not part of the JavaScript. I imagine that other users may have
"j" set to something else, otherwise there'd be no point having it.

If I modify the http://t0.extreme-dm.com and send the results to my ASP page
and use Querystrings to see what the values are, I only get the Screen width
and colour depth values.

Perhaps your ASP that's trying to get the values is broken.

The referrer information is not showing. I also
don't understand how they can extract users country domain from this code.

The won't extract the user's country domain from that code. They'll
have their server-side code do it by tracking the remote IP address (ie.
the site visitor's address) from which the request is made. It's rather
inaccurate, though.
 
I

Ivo

Elmbrook said:
In particular I'm trying to understand this line:
EXd=document;EXw?"":EXw="na";EXb?"":EXb="na";

EXw?"":EXw="na"
is short for: if EXw has not been assigned a value in the preceding
javascript1.2 block, give it a value of "na".
and this one: EXd.write("<img
src=\"http://t0.extreme-dm.com","/0.gif?tag=abc&j=y&srw="+EXw+"&srb="+EXb+"&
","l="+escape(EXd.referrer)+"\" height=1 width=1>");//-->

Why do they have a variable j=y defined? There is no 'j' variable defined
in the code.
So what? Do you see tag, srw, srb anywhere else? This is where j gets
defined. Think of y as a string of length 1. It probably means "javascript
enabled=yes". Look in the noscript tag where you 'll find "j=n".
 
E

Elmbrook

I'm trying to figure out how I can record the statistics of the visitors to
my website, where they came from etc and send this to an ASP page.

Are there Javascripts available for recording, referreal, domain etc?

Thanks for your help
 
L

Lasse Reichstein Nielsen

Spamless said:
This uses

A?B:C

If A is true, then do B, otherwise do C.
If A is not a boolean test, but some variable,
then A? just checks if A is defined.

That is not strictly correct.

If A is an undeclared variable, then "A?B:C" fails with an "undeclared
variable". If A is a declared variable, then its value is converted to
a boolean (as by the Boolean function). The values that are converted
to false are: 0, NaN, undefined, null, "" (empty string), and false
itself.

So, if A is defined but has the value 0, the "else" branch is still
used.
EXw?"":EXw="na"

personally, I would have written:

EXw = EXw || "na";

It has the same effect, is easier to read (IMHO), and is even shorter.

What he really means is
if(!EXw)EXw="na";
but that is one charater longer.

Where "if" is a statement that selects one of two *statements* based
on a conditional expression, the ?:-operator is an expression that
selects one of two expressions based on a condition. The original
author uses it as a statement, which *I* think is bad style.

/L
 
B

Bryan Field-Elliot

All this stuff should be done server-side (e.g. ASP, JSP, Perl,
whatever), rather than client-side (e.g. Javascript). From the server,
you should have access to the referring URL and the IP address of the
client (and from there, you can find their domoain). All this and more
in the HTTP headers. No client-side Javascript required (or even useful).

Better yet, your web server is probably already keeping this information
in it's logs. Apache and IIS both support standard "Common" format for
web hit logs, which includes client IP address and referring URL.

Good luck,
 
E

Elmbrook

Thanks, but the problem is that some of my webpages are static and are being
served by my local ISP. So when I found that this company had a way of
sending stats to their server from my static page, I was interested in how
they did it.
 

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,879
Messages
2,569,939
Members
46,232
Latest member
DeniseMcVi

Latest Threads

Top