prompt not working

Discussion in 'Javascript' started by joemac, Nov 30, 2005.

  1. joemac

    joemac Guest

    I'm just starting out with javascript and the following is not working
    as it should. The expected prompt dialog box never appears.

    <head>
    <script language="JavaScript"><!--
    var name;
    name=prompt("Please enter your name.","");
    document.write("My name is: ", name);
    // --></script>
    </head>
    <body>
    <p>Did it work out ok?
    </body>
    </html>

    I've tried replacing
    <script language="JavaScript">
    with
    <script type="text/javascript">
    but this makes no difference in the results, which are as follows:

    My name is:

    Did it work out ok?

    What am I doing wrong?

    Joe
     
    joemac, Nov 30, 2005
    #1
    1. Advertising

  2. joemac wrote:

    > I'm just starting out with javascript and the following is not working
    > as it should. The expected prompt dialog box never appears.
    >
    > <head>
    > <script language="JavaScript"><!--
    > var name;
    > name=prompt("Please enter your name.","");
    > document.write("My name is: ", name);
    > // --></script>
    > </head>
    > <body>
    > <p>Did it work out ok?
    > </body>
    > </html>
    >
    > I've tried replacing
    > <script language="JavaScript">
    > with
    > <script type="text/javascript">
    > but this makes no difference in the results, which are as follows:
    >
    > My name is:
    >
    > Did it work out ok?
    >
    > What am I doing wrong?


    A) a) You are declaring an XHTML document type and serve it
    correctly as application/xhtml+xml. Not at all wrong,
    but it would explain points Ab) and B) below.

    b) document.write() does not work in XHTML 1.1 and later.
    It also does not work in XHTML 1.0 yet, even though W3C
    DOM Level 2 HTML says it should.

    B) You successfully commented out script content with the
    empty declaration `<!-- ... -->'.

    C) 1. There is no global prompt() method in your UA, meaning
    that either the Global Object is not the same object the
    `window' reference points to or this host environment
    method is not supported by your UA's Application Object
    Model (AOM).

    2. Therefore, a ReferenceError occurs and further expressions
    are not evaluated.

    D) Script support is not present, i.e. either it is
    disabled or not available in the first place.

    <URL:http://jibbering.com/faq/#FAQ4_43>


    PointedEars
     
    Thomas 'PointedEars' Lahn, Nov 30, 2005
    #2
    1. Advertising

  3. Thomas 'PointedEars' Lahn wrote:

    > joemac wrote:
    >> I'm just starting out with javascript and the following is not working
    >> as it should. The expected prompt dialog box never appears.
    >>
    >> <head>
    >> <script language="JavaScript"><!--
    >> var name;
    >> name=prompt("Please enter your name.","");
    >> document.write("My name is: ", name);
    >> // --></script>
    >> </head>
    >> <body>
    >> <p>Did it work out ok?
    >> </body>
    >> </html>
    >>
    >> [...]
    >> My name is:
    >>
    >> Did it work out ok?
    >>
    >> What am I doing wrong?


    Re-reviewing this:

    > [...]
    > A) a) You are declaring an XHTML document type and serve it
    > correctly as application/xhtml+xml. Not at all wrong,
    > but it would explain points Ab) and B) below.
    >
    > b) document.write() does not work in XHTML 1.1 and later.
    > It also does not work in XHTML 1.0 yet, even though
    > W3C DOM Level 2 HTML says it should.


    That does not apply here, document.write() does something, which
    I overlooked at first.

    > B) You successfully commented out script content with the
    > empty declaration `<!-- ... -->'.


    Since "My name is: " is displayed, this would not apply here either.

    However, commenting out script contents like this can have such
    harmful effects and since it is not needed either, you should not
    do it anyway.

    > C) 1. There is no global prompt() method in your UA, meaning
    > that either the Global Object is not the same object the
    > `window' reference points to or this host environment
    > method is not supported by your UA's Application Object
    > Model (AOM).


    That is still a possibility. Since document.write(..., name) was
    used and not document.write(... + name), a DOM implementation may
    either decide not to display `undefined' or not to support
    additional arguments for that method.

    > 2. Therefore, a ReferenceError occurs and further expressions
    > are not evaluated.


    That does not appear to happen, since my "My name is:" is displayed.

    > D) Script support is not present, i.e. either it is
    > disabled or not available in the first place.


    That's not very likely either, since "My name is:" is created via
    client-side script.

    It appears that C) is the only possibility that remains.

    Sorry for causing confusion :-/


    PointedEars
     
    Thomas 'PointedEars' Lahn, Nov 30, 2005
    #3
  4. joemac

    joemac Guest

    Thomas 'PointedEars' Lahn wrote:
    >
    > A) a) You are declaring an XHTML document type and serve it
    > correctly as application/xhtml+xml. Not at all wrong,
    > but it would explain points Ab) and B) below.


    Since there are no explicit declarations about document types in my
    code I infer from the above that XHTML must be the "default" document
    type. Is that correct?

    > b) document.write() does not work in XHTML 1.1 and later.
    > It also does not work in XHTML 1.0 yet, even though W3C
    > DOM Level 2 HTML says it should.
    >
    > B) You successfully commented out script content with the
    > empty declaration `<!-- ... -->'.


    The book that I am using says to use comment tags to enclose all script
    elements so as to prevent wrongful interpretation by browsers lacking
    the ability to process said javascript elements. Are you saying that
    there are some browsers that are capable of processing javascript but
    do know enough to overlook comment tags inside of script begin and end
    tags?

    > C) 1. There is no global prompt() method in your UA, meaning
    > that either the Global Object is not the same object the
    > `window' reference points to or this host environment
    > method is not supported by your UA's Application Object
    > Model (AOM).


    What is "UA"?

    > 2. Therefore, a ReferenceError occurs and further expressions
    > are not evaluated.


    Is it possible to determine that this (ReferenceError) has occurred,
    and why?

    > D) Script support is not present, i.e. either it is
    > disabled or not available in the first place.


    How would I go about determining this and correcting it if necessary?

    > <URL:http://jibbering.com/faq/#FAQ4_43>


    I examined the referenced article. I do not see any "little yellow
    triangle". In fact I see no triangle at all, of any color.

    Joe
     
    joemac, Nov 30, 2005
    #4
  5. joemac wrote:

    > Thomas 'PointedEars' Lahn wrote:
    >> A) a) You are declaring an XHTML document type and serve it
    >> correctly as application/xhtml+xml. Not at all wrong,
    >> but it would explain points Ab) and B) below.

    >
    > Since there are no explicit declarations about document types in my
    > code I infer from the above that XHTML must be the "default" document
    > type. Is that correct?


    No, it is not. The document type must be explicitly declared, you
    should declare one of the HTML 4.01 document types. See the Spec.

    >> b) document.write() does not work in XHTML 1.1 and later.
    >> It also does not work in XHTML 1.0 yet, even though W3C
    >> DOM Level 2 HTML says it should.
    >>
    >> B) You successfully commented out script content with the
    >> empty declaration `<!-- ... -->'.

    >
    > The book that I am using says to use comment tags to enclose all script
    > elements so as to prevent wrongful interpretation by browsers lacking
    > the ability to process said javascript elements.


    Your book (which?) is outdated.

    There are no such browsers left that would still conform to Internet
    standards. See RFC2854 and, of course, previous discussions on the
    subject.

    > Are you saying that there are some browsers that are capable of
    > processing javascript but do know enough to overlook comment tags
    > inside of script begin and end tags?


    Probably. The HTML specification does not state it as a MUST or
    SHOULD, and examples therein are not normative. In fact, in HTML
    the `script' element's content is CDATA that is _not_ really
    parsed. (The only parsing that MUST take place is looking for
    the CDATA-ending ETAGO delimiter `</'.)

    Furthermore, there is no reference material that states script
    engines MUST ignore `<!--' at the beginning of script code. And
    in XHTML, where an XML parser is used and the `script' element's
    content is PCDATA by default, it is allowed to ignore commented
    content by removing comments from source before building the
    parse tree. (After all, they are only _comments_.)

    >> C) 1. There is no global prompt() method in your UA, meaning
    >> that either the Global Object is not the same object the
    >> `window' reference points to or this host environment
    >> method is not supported by your UA's Application Object
    >> Model (AOM).

    >
    > What is "UA"?


    ([X]HTML) User Agent. Web browsers are the greatest subset.

    >> 2. Therefore, a ReferenceError occurs and further expressions
    >> are not evaluated.

    >
    > Is it possible to determine that this (ReferenceError) has occurred,


    Yes, if the error reporting feature of your UA does not suffice,
    you could use

    try
    {
    // statements that may cause errors
    }
    catch (e)
    {
    alert(e.name + ": " + e.message);
    }

    provided it is supported (ECMAScript 3 compliant implementation).
    Or use proprietary

    onerror = function()
    {
    alert("Error!");
    onerror = null;
    return true;
    }

    > and why?


    Only line-wise debugging can show this.

    >> D) Script support is not present, i.e. either it is
    >> disabled or not available in the first place.

    >
    > How would I go about determining this and correcting it if necessary?


    Depends on the user agent.

    >> <URL:http://jibbering.com/faq/#FAQ4_43>

    >
    > I examined the referenced article. I do not see any "little yellow
    > triangle". In fact I see no triangle at all, of any color.


    Which user agent(s) have you tested with?


    PointedEars
     
    Thomas 'PointedEars' Lahn, Nov 30, 2005
    #5
  6. Thomas 'PointedEars' Lahn wrote:

    > joemac wrote:
    >> Thomas 'PointedEars' Lahn wrote:
    >>> 2. Therefore, a ReferenceError occurs and further expressions
    >>> are not evaluated.

    >>
    >> Is it possible to determine that this (ReferenceError) has occurred,

    >
    > Yes, if the error reporting feature of your UA does not suffice,
    > you could use
    >
    > try
    > {
    > // statements that may cause errors
    > }
    > catch (e)
    > {
    > alert(e.name + ": " + e.message);
    > }
    >
    > provided it is supported (ECMAScript 3 compliant implementation).
    > Or use proprietary
    >
    > onerror = function()
    > {
    > alert("Error!");
    > onerror = null;
    > return true;
    > }


    Thinking about it, if prompt() does not work, alert() may not work either,
    as both are methods of the Window host object and not built-in language
    features.

    Maybe you will have to find other ways to indicate error. You could change
    the value of a variable, for example. Comparison will at least indicate
    that there was an error. I think, _which_ error occured cannot be easily
    determined without using AOM/DOM features.


    PointedEars
     
    Thomas 'PointedEars' Lahn, Nov 30, 2005
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. chrisdude911
    Replies:
    10
    Views:
    135,620
    srk289
    Mar 10, 2009
  2. gaurav kashyap
    Replies:
    2
    Views:
    655
    gaurav kashyap
    Oct 30, 2008
  3. gaurav kashyap
    Replies:
    3
    Views:
    724
    gaurav kashyap
    Oct 31, 2008
  4. Mel
    Replies:
    10
    Views:
    3,215
    Sailaja Appi
    Feb 13, 2009
  5. joemac

    prompt not working

    joemac, Nov 30, 2005, in forum: Javascript
    Replies:
    14
    Views:
    162
    Thomas 'PointedEars' Lahn
    Dec 1, 2005
Loading...

Share This Page