Two categories: Browser environment and Computer/OS environment.
I've not looked at browser sniffers for a while as they are generally out of fashion in favour of "object testing" for code branching and error protection (if(document.getElementById) .... and the like).
It is a bit out of date (last reported update 10/09/2006 but does include IE7 detection) but at least attempts to spot Opera in masquerade mode. What you see on the page is the sniffer's output. View source to get the code.
Browser sniffing will detect the OS/version but any deeper (eg. processor/motherboard/bios stuff) is outside my experience I'm afriad. I would guess at somewhere between very difficult and impossible. You have to remember that browsers are buttoned down for security/privicy. LiveConnect to Java? Anybody?
Where and how would you create this environment variable foo and where do you want its value to be available?
Sorry to confuse you.I have written one code for sending data to the server.The server address may vary depending on where the server is hosted.Instead of changing the address of server in the code ,I want to read the server address from the environment variable which is created manually.
I'm still not sure I fully understand but maybe this will help.
In client-side Javscript, all expressions are evaluated in the context of the current Window object, which provides the global namespace, not only for all your code but also for many top-level methods, variables and objects.
One such object is "location", (which can be referred to as either window.location or self.location or simply location ), which represents the URL of the file currently displayed in the window. Window.location is conveniently provided with a set of properties and methods as follows:
location.port : the host's port on which the document was/will be served. Optional; defaulting to port 80 if not specified.
location.host : Equivalent to location.hostname + ':' + location.port .
location.pathname : the path, relative to the host's service root, to the served document.
location.search : aka the "query string"; an optional string of name=value pairs, separated from the pathname by a "?" and from each other by "&".
location.hash : an optional string representing a named anchor within the served document, separated from the pathname by a "#".
location.reload([force]) : reloads the current page. Optional boolean force instructs the server to reserve the page even if it has not been modified.
location.replace(url) : Causes the document specified by url to be displayed, without making a new entry in the window.history object. Use window.location.href to make a new entry in window.history .
I think what you are asking for is location.hostnamehowever in most circumstances, you don't need to use it.
The reason for this is that browsers are very good at doing the hard work for you. By default, if you specify a "relative" url, (ie one that omits the protocol and host) then your browser (and everybody else's) assumes these fragments to be the same as those of window.location (ie. those of the current document).
Of course, there are circumstances under which you may need to do something more complex, for example building a complete url from the ground up. I am due to publish a "code snippet" on this subject soon. Meanwhile the above explanation of window.location should get you started.
Whereas this has little to do with my understanding of "environmental variables", I hope it helps.