Connecting Tech Pros Worldwide Help | Site Map

comp.lang.javascript FAQ - Quick Answers- 8.1 - 2005-11-05

 
LinkBack Thread Tools Search this Thread
  #1  
Old December 5th, 2005, 11:15 AM
FAQ Poster
Guest
 
Posts: n/a
Default comp.lang.javascript FAQ - Quick Answers- 8.1 - 2005-11-05


comp.lang.javascript FAQ - Quick Answers- 8.1 - 2005-11-05

1 meta-FAQ meta-questions
2 comp.lang.javascript tips
2.1 Which newsgroup deals with javascript?
2.2 What questions are off-topic for clj?
2.3 What do I have to do before posting to clj?
2.4 Why was my post not answered?
2.5 How do I direct someone to this FAQ?
2.6 What is ECMAScript?
2.7 What is JScript?
2.8 What are object models?
2.9 What is the document object model?
2.10 Internationalisation in javascript.
2.11 I have a question that is not answered in here or
in any of the resources mentioned here but I'm sure it has been
answered in clj. Where are the clj archives located?
2.12 What does the future hold for ECMAScript?
3 javascript resources
3.1 What books cover javascript?
3.2 What online resources are available?
4 Quick Answers
4.1 How do I protect my javascript code?
4.2 How can I disable the back button in a web browser?
4.3 How can I access the client-side filesystem?
4.4 How can I see in javascript if a web browser accepts cookies?
4.5 How can I protect a webpage in javascript?
4.6 How do I convert a Number into a String with exactly 2 decimal places?
4.7 Why does 5 * 1.015 != 5.075 or 0.06+0.01 != 0.07?
4.8 How do I communicate between frames in a web browser?
4.9 How do I find the size of a browser window?
4.10 How do I check to see if a childwindow is open, before opening another?
4.11 Why does framename.print() not print the correct frame in IE?
4.12 Why does parseInt('09') give an error?
4.13 How do I get the value of a form control?
4.14 How do I close a window and why does it not work on the first one?
4.15 How do I modify the current page in a browser?
4.16 How do I trim whitespace - LTRIM/RTRIM/TRIM?
4.17 How do I force a reload from the server/prevent caching?
4.18 How do I get a perl/asp/php variable into client-side js?
4.19 Why do I get permission denied when accessing a frame/window?
4.20 How do I make a 10 second delay?
4.21 Why does 1+1 equal 11? or How do I convert a string to a number?
4.22 How do I generate a random integer in [1..N]?
4.23 How do I change print settings with window.print()?
4.24 I have <a href="javascript:somefunction()"> what ... ?
4.25 My element is named myselect[] , how do I access it?
4.26 How do I detect Opera/Netscape/IE?
4.27 How do I disable the right mouse button?
4.28 How do I change the confirm box to say yes/no or default to cancel?
4.29 How do I log-out a user when they leave my site?
4.30 How do I format Last Modified date with javascript
4.31 Why are my Rollovers so slow?
4.32 How do I change the text in the url/location bar?
4.33 How do I prompt a "Save As" dialog for an accepted mime type?
4.34 How do I run a server side script?
4.35 I have window.status="Moomin"; why doesn't the statusbar change?
4.36 How do I modify the current browser window?
4.37 How do I POST a form to a new window?
4.38 How do I download a page to a variable?
4.39 How do I access a property of an object using a string?
4.40 When should I use eval?
4.41 Why doesn't the global variable "divId" always refer to the element with id="divId"?
4.42 How do I open a new window with javascript?
4.43 How do I get my browser to report javascript errors?
5 Comments and Suggestions
5.1 Why do some posts have <FAQENTRY> in them ?
5.2 How do I make a suggestion?



1 meta-FAQ meta-questions

You are reading the _comp.lang.javascript_ meta-FAQ,
version 8.1. It is available on the web at
<URL: http://www.jibbering.com/faq/ > in HTML form.

This is the official _comp.lang.javascript_ (clj) FAQ.
Or, more accurately, the meta-FAQ. It mainly provides URLs to
further information about javascript, and some hints and tips to
make your stay in comp.lang.javascript more enjoyable.

This document was created for three reasons: to help reduce the
high levels of noise on clj, to provide a resource for people
new to javascript, and to point to locations that contain
valuable javascript resources.

The FAQ will currently be posted in two parts, one part (the
Quick Answers) on Mondays and Fridays, with the remainder posted
on wednesdays.

To cope with a desire for additional explanation and detail
relating to some aspects of the FAQ, an additional resource
is available at:-

<URL: http://www.jibbering.com/faq/faq_notes/faq_notes.html >

It has been provided separately to avoid increasing the size of
the FAQ to a point where it would be unreasonable to post it to
the group.


2 comp.lang.javascript tips

see <URL: http://jibbering.com/faq/#FAQ2 >
Or Wednesdays FAQ posting.

3 javascript resources

see <URL: http://jibbering.com/faq/#FAQ3 >
Or Wednesdays FAQ posting.

4 Quick Answers
4.1 How do I protect my javascript code?

In the main, you can't as your code is distributed in source
form and is easily readable. With JScript, there is the Script
Encoder (see MSDN), but this is nothing more than obfuscation.
Disabling the right mouse button also does nothing to protect
your script in a Web browser.


Your code is likely protected under copyright laws. See:
<URL: http://www.wipo.int/about-ip/en/copyright.html >
<URL: http://webdesign.about.com/msubcopyright.htm >

4.2 How can I disable the back button in a web browser?

You can't. The browser's history cannot be modified. However, you
can use location.replace(url) in some browsers to replace
the current page in the history.

<URL: http://msdn.microsoft.com/workshop/a...ds/replace.asp >
<URL: http://docs.sun.com/source/816-6408-...on.htm#1194240 >

4.3 How can I access the client-side filesystem?

Security means that by default you can't. In a more restricted
enviroment, there are options. For example, using LiveConnect
to connect to Java with Netscape, and using the FileSystemObject
in IE. Check
<URL: http://groups.google.com/ > for previous posts on the
subject.

<URL: http://msdn.microsoft.com/library/en...FileSystem.asp >
<URL: http://www.javaworld.com/javaworld/j...pptowin32.html >

4.4 How can I see in javascript if a web browser accepts cookies?

Writing a cookie, reading it back and checking if it's the same.

<URL: http://www.w3schools.com/js/js_cookies.asp >

Additional Notes:

<URL: http://www.jibbering.com/faq/faq_notes/cookies.html >

4.5 How can I protect a webpage in javascript?

In practice you can't. While you could create a suitable
encryption system with a password in the page, the level of
support you need to do this means it's always simpler to do it
server-side. Anything that "protects" a page other
than the current one is definitely flawed.


4.6 How do I convert a Number into a String with exactly 2 decimal places?

When formatting money for example, to format 6.57634 to
6.58, 6.5 to 6.50, and 6 to 6.00?

Rounding of x.xx5 is uncertain, as such numbers are not
represented exactly.

N = Math.round(N*100)/100 only converts N to a Number of value
close to a multiple of 0.01; but document.write(N) does not give
trailing zeroes.

ECMAScript Ed. 3.0 (JScript 5.5 [but buggy] and JavaScript 1.5)
introduced N.toFixed, the main problem with this is the bugs in
JScripts implementation.

Most implementations fail with certain numbers, for example 0.07.
The following works successfully for M>0, N>0:


function Stretch(Q, L, c) { var S = Q
if (c.length>0) while (S.length<L) { S = c+S }
return S
}
function StrU(X, M, N) { // X>=0.0
var T, S=new String(Math.round(X*Number("1e"+N)))
if (S.search && S.search(/\D/)!=-1) { return ''+X }
with (new String(Stretch(S, M+N, '0')))
return substring(0, T=(length-N)) + '.' + substring(T)
}
function Sign(X) { return X<0 ? '-' : ''; }
function StrS(X, M, N) { return Sign(X)+StrU(Math.abs(X), M, N) }

Number.prototype.toFixed= new Function('n','return StrS(this,1,n)')

<URL: http://www.merlyn.demon.co.uk/js-round.htm >
<URL: http://msdn.microsoft.com/library/en...mthToFixed.asp >

4.7 Why does 5 * 1.015 != 5.075 or 0.06+0.01 != 0.07?

Javascript numbers are represented in binary as IEEE-754
Doubles, with a resolution of 53 bits, giving an accuracy of
15-16 decimal digits; integers up to about 9e15 are precise, but
few decimal fractions are. Given this, arithmetic is as exact
as possible, but no more. Operations on integers are exact if
the true result and all intermediates are integers within that
range.

In particular, non-integer results should not normally be
compared for equality; and non-integer computed results
generally need rounding; see 4.6.

<URL: http://msdn.microsoft.com/library/en...ondatatype.asp >

4.8 How do I communicate between frames in a web browser?

To reference another frame, you simply need to step through the
frame hierarchy: parent is the page the frame is defined in,
parent.framename is another frame in the same frameset. To access
a variable called Moomin in a frame called Snork you would use
parent.Snork.Moomin. To call the function Snufkin in that frame
you would use parent.Snork.Snufkin().


4.9 How do I find the size of a browser window?

Where supported in NN: (>NN4.0)


var winWidth = window.innerWidth;
var winHeight = window.innerHeight;

Where supported in IE: (>IE4.0)


var winWidth = document.body.clientWidth;
var winHeight = document.body.clientHeight;

When using IE6 with in CSS1Compat mode (with a Formal DOCTYPE):


var winWidth = document.documentElement.clientWidth
var winHeight = document.documentElement.clientHeight

Combined:


var winWidth, winHeight, d=document;
if (typeof window.innerWidth!='undefined') {
winWidth = window.innerWidth;
winHeight = window.innerHeight;
} else {
if (d.documentElement &&
typeof d.documentElement.clientWidth!='undefined' &&
d.documentElement.clientWidth!=0) {
winWidth = d.documentElement.clientWidth
winHeight = d.documentElement.clientHeight
} else {
if (d.body &&
typeof d.body.clientWidth!='undefined') {
winWidth = d.body.clientWidth
winHeight = d.body.clientHeight
}
}
}

<URL: http://msdn.microsoft.com/workshop/a...lientWidth.asp >
<URL: http://docs.sun.com/source/816-6408-...ow.htm#1202446 >
<URL: http://msdn.microsoft.com/workshop/a.../measuring.asp >

4.10 How do I check to see if a childwindow is open, before opening another?
var myWin=null;
function openWin(aURL) {
if (!myWin || myWin.closed ) {
myWin=window.open(aURL,'myWin');
} else{
myWin.location=aURL;
myWin.focus();
}
}

<URL: http://msdn.microsoft.com/workshop/a...ies/closed.asp >
<URL: http://docs.sun.com/source/816-6408-...ow.htm#1201877 >

4.11 Why does framename.print() not print the correct frame in IE?

IE prints the frame that has focus when you call the print
method frameref.focus();frameref.print();
<URL: http://msdn.microsoft.com/library/en...dhtmlprint.asp >

4.12 Why does parseInt('09') give an error?

The parseInt function decides what base the number is by looking
at the number. By convention it assumes any number beginning
with 0 is Octal, and any number beginning with 0x Hexadecimal.
To force use of base 10 add a second parameter parseInt("09",10)
<URL: http://msdn.microsoft.com/library/en...thparseint.asp >
<URL: http://docs.sun.com/source/816-6408-...ev.htm#1064173 >
<URL: http://www.jibbering.com/faq/faq_not....html#FAQN4_12 >

4.13 How do I get the value of a form control?

In HTML documents, named forms may be referred to as named
properties of the document.forms collection, and named form
controls may be referred to as named properties of the form's
elements collection:


var frm = document.forms["formname"];
var contrl = frm.elements["elementname"];

The (string) value property of such controls can be read
directly from the element:-


var value = contrl.value;

One exception is where the control is a SELECT element, and
support for older browsers, such as NN4, is required:


var value = contrl.options[contrl.selectedIndex].value;

Another exception is where several controls share the same name,
such as radio buttons. These are made available as collections
and require additional handling. For more information, see:-

<URL: http://www.jibbering.com/faq/faq_notes/form_access.html >

4.14 How do I close a window and why does it not work on the first one?

Use windowRef.close(), where windowRef is a window object
reference, such as window, top, parent, self, or a reference
obtained from the window.open() method. You can only close
windows opened by scripts, no others.

<URL: http://msdn.microsoft.com/workshop/a...ds/close_0.asp >
<URL: http://docs.sun.com/source/816-6408-...ow.htm#1201822 >

4.15 How do I modify the current page in a browser?

Using the DOM and Microsoft's innerHTML extension, the following
would be sufficient to modify the content of any element that
can have content:
<div id="anID">Some Content</div> with script of
document.getElementById("anID").innerHTML=
"Some <em>new</em> Content";
Where "anID" is the (unique on the HTML page) ID attribute value
of the element to modify.

The script below adds support for document.all capable browsers.
Support for NN4 is also possible, but certain issues mean that
it is not listed here. Using the example above, the call would
be written:
DynWrite('anID',"Some <em>new</em> Content")
With the below code also in the page:


DocDom = (document.getElementById?true:false);
DocAll = (document.all?true:false);
DocStr=''
if (DocAll) DocStr="return document.all[id]"
if (DocDom) DocStr="return document.getElementById(id)"
GetRef=new Function("id", DocStr)
if (DocStr=='') { DynWrite=new Function("return false") } else {
DynWrite=new Function("id", "S", "GetRef(id).innerHTML=S; return true")
}
An alternative DynWrite function:
<URL: http://www.jibbering.com/faq/faq_not..._dynwrite.html >
<URL: http://msdn.microsoft.com/workshop/a.../innerHTML.asp >
<URL: http://www.mozilla.org/docs/dom/domr...8.html#1018427 >

4.16 How do I trim whitespace - LTRIM/RTRIM/TRIM?

Using Regular Expressions (JavaScript 1.2/JScript 4+) :


String.prototype.LTrim=new Function("return this.replace(/^\\s+/,'')")
String.prototype.RTrim=new Function("return this.replace(/\\s+$/,'')")
String.prototype.Trim=
new Function("return this.replace(/^\\s+|\\s+$/g,'')")

or for all versions (trims characters ASCII<32 not true
"whitespace"):


function LTrim(str) {
for (var k=0; k<str.length && str.charAt(k)<=" " ; k++) ;
return str.substring(k,str.length);
}
function RTrim(str) {
for (var j=str.length-1; j>=0 && str.charAt(j)<=" " ; j--) ;
return str.substring(0,j+1);
}
function Trim(str) {
return LTrim(RTrim(str));
}

<URL: http://msdn.microsoft.com/library/en...xpressions.asp >
<URL: http://docs.sun.com/source/816-6408-10/regexp.htm >

4.17 How do I force a reload from the server/prevent caching?

To reload a page, use location.reload(). However, this depends
upon the cache headers that your server sends. To change this,
you need to alter the server configuration. A quick fix on the
client is to change the page URI so that it contains a unique
element, such as the current time. For example:
location.replace(location.href+'?d='+new Date().valueOf())
If the location.href already contains a Query String, use:
location.replace(location.href+'&d='+new Date().valueOf())
<URL: http://www.mnot.net/cache_docs/ >
<URL: http://docs.sun.com/source/816-6408-10/date.htm >

4.18 How do I get a perl/asp/php variable into client-side js?

Use the server-side language to generate the javascript:


jsvar="<%= aspvar %>";
jsvar="<?php echo $phpvar ?>";

etc. For communication between client and server, after a page
has loaded, there are a number of "Remote Scripting" options
available:

<URL: http://www.ashleyit.com/rs/main.htm >

4.19 Why do I get permission denied when accessing a frame/window?

In the normal browser security model, it is impossible for a
script from one domain to access the properties of pages served
from another domain, or a different protocol. Any attempt to
access a property in such cases will result in a "Permission
Denied" error. Signed scripts or trusted ActiveX objects can
overcome this in limited situations.

<URL: http://msdn.microsoft.com/workshop/a...g_security.asp >

4.20 How do I make a 10 second delay?

There is no built-in way to pause execution in javascript such
as a sleep function, but hosts usually provide a method of some
form. Web browsers are designed for event driven programming and
only provide the setTimeout and setInterval functions
to facilitate timed delays.

To call the function Snork(), approx 10 seconds
after the function Moomin(), you would do this:


Moomin()
setTimeout('Snork()',10000)

Script execution is not stopped, and adding Snufkin() after the
setTimeout line would immediately execute the function Snufkin()
before Snork()
Achieving delays through running a loop of some sort for a
pre-defined period is a bad strategy, as that will tend to
put CPU use up to 100% and inhibit whatever was supposed to
be happening during the delay.

Other (less event driven) hosts have different wait functions,
such as WScript.Sleep() in the Windows Script Host.

<URL: http://msdn.microsoft.com/workshop/a...setTimeout.asp >
<URL: http://docs.sun.com/source/816-6408-...ow.htm#1203758 >
<URL: http://en.wikipedia.org/wiki/Event-driven_programming >

4.21 Why does 1+1 equal 11? or How do I convert a string to a number?

Javascript variables are loosely typed: the conversion between a
string and a number happens automatically. Since plus (+) is also
used as in string concatenation, '1' + 1 is equal to '11': the
String deciding what + does. To overcome this, first convert the
string to a number. For example:
Number(varname) or varname*1 or varname-0 or
parseInt(varname, 10) or parseFloat(varname) or +varname.
Prompt and form control values are strings, as is the result from
a prompt window. Convert these to numbers before performing
addition.


Additional Notes:
<URL: http://www.jibbering.com/faq/faq_not...e_convert.html >
<URL: http://msdn.microsoft.com/library/en...condeclare.asp >

4.22 How do I generate a random integer in [1..N]?
function Random(x) { return Math.floor(x*Math.random()) }

gives a random number in the range 0..(x-1);
Random(N)+1 for [1..N]

<URL: http://msdn.microsoft.com/library/en...smthrandom.asp >
<URL: http://docs.sun.com/source/816-6408-10/math.htm >

How to Deal and Shuffle:
<URL: http://www.merlyn.demon.co.uk/js-randm.htm >

4.23 How do I change print settings with window.print()?

In a normal security enviroment, you can't change anything. The
page stylesheet rules provide some options, but are not supported
in browsers yet. If you can, use an ActiveX or Plugin ScriptX and
Neptune from Meadroid to give you more control for Windows
versions of Internet Explorer and Netscape 4,6 and Opera 5.

<URL: http://www.meadroid.com/scriptx/ >
<URL: http://msdn.microsoft.com/library/en...dhtmlprint.asp >

4.24 I have <a href="javascript:somefunction()"> what ... ?

Whatever the rest of your question, this is generally a very bad
use of the javascript pseudo protocol. It was designed so that a
function could return a new page. For example:
javascript:"<p>Hello</p>".
Using it simply to call a function when a link is clicked causes
an error in user agents that do not support javascript, or have
javascript disabled. Instead, use
<a href="something.html" onclick="somefunction();return false">
where something.html is a meaningful alternative. Alternatively,
place the onclick event on another element so that users without
JavaScript aren't even aware that it does anything.

<URL: http://www.useit.com/alertbox/20021223.html >

4.25 My element is named myselect[] , how do I access it?

Form controls with any "illegal" characters can be accessed with
formref.elements["myselect[]"] - The bracket characters,
amongst others, are illegal in ID attributes and JavaScript
identifiers, so you should try to avoid them as browsers may
handle them incorrectly.

<URL: http://msdn.microsoft.com/workshop/a...s/elements.asp >
<URL: http://docs.sun.com/source/816-6408-10/form.htm >
<URL: http://www.jibbering.com/faq/faq_not....html#FAQN4_25 >

4.26 How do I detect Opera/Netscape/IE?

The navigator object contains strings which
specify the browser and version; however, this is in general not
very genuine. Mozilla (and therefore Netscape 6+) allows this to
be freely set, and Opera and IE allow it to be modified. There
are also at least 25 other javascript capable browsers with
their own strings here.

Generally though, you don't need to identify which browser is
being used. There are alternative techniques, but which one you
choose depends on why you want to redirect browsers. If it's to
offer different CSS stylesheets, then <URL: http://w3development.de/css/hide_css_from_browsers/ >
shows many techniques. For Scripting, _object_ detection
is a better method to use.
<URL: http://www.quirksmode.org/js/support.html >
It is also known as feature detection.

Object/feature detection means checking that the object you wish
to use is supported by the browser before using it. This means
that you don't need to know what browsers support what methods,
and your code will automatically be usable on any browser that
can execute it.


if (document.getElementById &&
document.getElementById('el') &&
document.getElementById('el').style ) {
// We know that this browser supports getElementByID and has
// a style object, so we can set a style property.
document.getElementById('el').style.color="red";
}

Browser bugs can often be detected and overcome in similar ways.

<URL: http://www.jibbering.com/faq/faq_not...er_detect.html >
<URL: http://developer.apple.com/internet/...detection.html >

4.27 How do I disable the right mouse button?

The oncontextmenu intrinsic event is the only safe and reliable
method. Of the other approaches often presented, most depend on
an alert box interrupting the process and rarely work. Note that
oncontextmenu is a non-standard event and is not supported on
all browsers.
<body oncontextmenu="return false">

4.28 How do I change the confirm box to say yes/no or default to cancel?

The buttons on a confirm box cannot be changed, nor can you
specify a default button. However, you should be able to change
the question so that "OK" is suitable as the default.
e.g. change "We will now buy ourselves a porsche with your credit
card, Do you want to continue with this transaction _OK_ Cancel"
to "We will now buy ourselves a porsche with your credit card,
Would you like to abandon this transaction? _OK_ Cancel"


4.29 How do I log-out a user when they leave my site?

This cannot be done reliably. Here 's why:


The user may disable JavaScript so the log-out script will
never execute.

The user may not be on-line when they close your web page.

Javascript errors elsewhere in the page may prevent the script
executing.

The browser may not support the onunload event, or may not fire
it under certain circumstances, so the log-out function will
not execute.


The URL below has more information.

<URL: http://groups.google.com/groups?selm...r.ntlworld.com >

4.30 How do I format Last Modified date with javascript

Apparently, new Date() reads it correctly, though problems
can occur if the browser returns only two digits for the year.
In particular, time zone, field order and separators may vary.
It is also reliant on the server's clock having been correctly
set at the time of upload. See the URL
below.

<URL: http://www.merlyn.demon.co.uk/js-date2.htm#lM >

4.31 Why are my Rollovers so slow?

Images are cached by the browser depending on the headers sent by
the server. If the server does not send sufficient information
for the browser to decide the image is cacheable, the browser
will check if the image has been updated everytime you change the
src of an image (in some user settings). To overcome this you
must send suitable headers.

<URL: http://www.mnot.net/cache_docs/ >

4.32 How do I change the text in the url/location bar?

This text can only be altered by changing the URL of the page.
The normal solution is to use frames, though this can introduce
problems of its own.


4.33 How do I prompt a "Save As" dialog for an accepted mime type?

It is not possible with client-side JavaScript. Some browsers
accept the Content-Disposition header, but this must be added
by the server. Taking the form:-
Content-Disposition: attachment; filename=filename.ext
<URL: http://aspfaq.com/show.asp?id=2161 >
<URL: http://support.microsoft.com/support.../Q260/5/19.ASP >

4.34 How do I run a server side script?

You trigger a server-side script by setting any object's URL. For
example a frame, window, or an Image. An image will also
"swallow" the data sent back by the server, so that they will
not be visible anywhere.
var dummyImage = new Image();dummyImage.src =
"scriptURL.asp?param=" + varName;
Mozilla, Safari, and the Windows version of IE (and Opera 7.6+),
provide the XML HTTP Request object. This allows JavaScript to
send HTTP requests directly to the server, and interact with
the responses returned.

<URL: http://jibbering.com/2002/4/httprequest.html >

4.35 I have window.status="Moomin"; why doesn't the statusbar change?

When changing the status in an event (e.g. onmouseover) you
should return true from the event. Also a number of browsers
require a short delay before setting the status to overcome their
default behaviour with the statusbar.
onevent="setTimeout('window.status=\'Moomin\'',15) ;"
Some browsers may be configured to disallow scripts from setting
the status.


4.36 How do I modify the current browser window?

In a default security enviroment you are very limited in how much
you can modify the current browser window. You can use
window.resizeTo or window.moveTo to resize or move a
window respectively, but that is it. Normally you can only
suggest chrome changes in a window.open
<URL: http://msdn.microsoft.com/workshop/a...ods/open_0.asp >

4.37 How do I POST a form to a new window?

You use the target attribute on the form, opening a window with
that name and your feature string in the onsubmit handler of the
FORM.


<form ... target="wndname" onsubmit="window.open('',this.target,'features');r eturn true;">

<URL: http://www.htmlhelp.com/reference/ht...orms/form.html >

4.38 How do I download a page to a variable?

Within a web-page, you need to either use java, or the XML HTTP
Request object, see:

<URL: http://www.galasoft-LB.ch/myjava/Web...Demo/Demo.html >
<URL: http://jibbering.com/2002/4/httprequest.html >

4.39 How do I access a property of an object using a string?

There are two equivalent ways to access properties: the dot
notation and the square bracket notation. What you are looking
for is the square bracket notation in which the dot, and the
identifier to its right, are replaced with a set of square
brackets containing a string. The value of the string matches
the identifier. For example:-


//dot notation
var bodyElement = document.body;

//square bracket notation, using an expression
var bodyElement = document["bo"+"dy"];

<URL: http://www.jibbering.com/faq/faq_not..._brackets.html >

4.40 When should I use eval?

The eval() function should _only_ be used when it is necessary to
evaluate a string supplied or composed at run-time; the string
can be anything from a simple (but unpredictable) expression such
as 12*2.54 to a substantial piece of javascript code.

The eval() function should not be used as a crutch in composing
member expressions; see section 4.39.


4.41 Why doesn't the global variable "divId" always refer to the element with id="divId"?

Microsoft introduced a shortcut that can be used to reference
elements which include an ID attribute where the ID becomes a
global variable. Some browsers reproduce this behaviours but
some, most notably Gecko-based browsers (Netscape and Mozilla),
do not. The best approach is the document.getElementById
method, which is part of the W3C DOM standard and implemented
in modern browsers (including IE from version 5.0). So an
element with id="foo" can be referenced
with:-


var el = document.getElementById("foo");

<URL: http://www.mozilla.org/docs/web-deve...tml#dom_access >
<URL: http://www.jibbering.com/faq/faq_not....html#FAQN4_41 >

4.42 How do I open a new window with javascript?

New windows can be opened on browsers that support the
window.open function and are not subject to the action of any
pop-up blocking mechanism with code such as:-


if(window.open){
wRef = window.open("http://example.com/page.html","windowName");
}

<URL: http://www.infimum.dk/HTML/JSwindows.html >

4.43 How do I get my browser to report javascript errors?

Various browsers include mechanisms for reporting javascript
errors in more or less detail but often they need to be enabled
or actively viewed. The quick way of activating error messages
in the Windows version of IE is to wait until a little yellow
triangle appears at the left end of the status bar, double click
on it and, when the error dialog box appears, check the "Always
show errors" checkbox it contains. It is also possible to
enable/disable error reporting from the "Internet Options"
dialog available through the menus. Mac IE error reporting is
enabled through the preferences dialog.

Netscape, Mozilla and other Gecko-based browsers have a
javascript console that displays errors. It can be viewed by
typing javascript: into the address bar, and it is sometimes also
available as a menu item.

Opera's JavaScript console can be opened from the Window menu
(Window > Special > JavaScript console). Alternatively, you can
have it open automatically by selecting the "Open JavaScript
console on error" checkbox in the preferences.


For Safari see:

<URL: http://developer.apple.com/internet/....html#anchor14 >

5 Comments and Suggestions
5.1 Why do some posts have <FAQENTRY> in them ?

If a poster feels that the question they are answering should be
covered in the FAQ, placing <FAQENTRY> in your post lets the FAQ
robot collect the messages for easy review and inclusion.

The <FAQENTRY> should not be used in posts except in
conjunction with a suggestion/proposal for the FAQ. It should
also not be literally quoted in replies, instead it should be
partly obscured as, e.g. <FAQ**TRY> or similar.


5.2 How do I make a suggestion?

To Make a suggestion to the FAQ, use either the FAQENTRY method
above, or email Richard Cornford (Richard@litotes.demon.co.uk),
current FAQ editor) or Jim Ley (jim@jibbering.com). All
comments, suggestions, and especially corrections are welcome.


 

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Popular Articles

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over 220,989 network members.