Javascript and Firefox 1.5

Discussion in 'Javascript' started by lmarceglia@gmail.com, May 2, 2006.

  1. Guest

    Hi,
    I have this website that doesn't work in Firefox 1.5:

    www.pianetaluca.com

    The HTML source is:


    <TITLE>PianetaLuca</TITLE>
    </HEAD>
    <SCRIPT Language="Javascript">
    document.writeln('<script type="text/javascript"
    src="/contatore.js"><'+'\/script>');
    document.writeln('<FRAMESET frameborder="0" border="0"
    rows="100,*">');
    document.writeln('<FRAME src="menu.html" scrolling="no"
    frameborder="no" border="0" name="menu_frame">');
    document.writeln('<FRAME src="benven.html" name="mainframe">');
    document.writeln('</FRAMESET>');
    </script>
    </HTML>

    With IE everything works fine. But why have I got problems with Firefox
    1.5 (and not with the previous versions, say 1.0.3)? Is my javascript
    code which is not good?

    Thanks a lot for your help.
    Luc.
    , May 2, 2006
    #1
    1. Advertising

  2. Randy Webb Guest

    Arnulf Sortland said the following on 5/2/2006 5:53 PM:
    >> I have this website that doesn't work in Firefox 1.5:
    >>
    >> www.pianetaluca.com
    >>
    >> The HTML source is:
    >> <TITLE>PianetaLuca</TITLE>
    >> </HEAD>
    >> <SCRIPT Language="Javascript">
    >> document.writeln('<script type="text/javascript"
    >> src="/contatore.js"><'+'\/script>');
    >> document.writeln('<FRAMESET frameborder="0" border="0"
    >> rows="100,*">');
    >> document.writeln('<FRAME src="menu.html" scrolling="no"
    >> frameborder="no" border="0" name="menu_frame">');
    >> document.writeln('<FRAME src="benven.html" name="mainframe">');
    >> document.writeln('</FRAMESET>');
    >> </script>
    >> </HTML>
    >>
    >> With IE everything works fine. But why have I got problems with Firefox
    >> 1.5 (and not with the previous versions, say 1.0.3)? Is my javascript
    >> code which is not good?

    >
    > why use js like this ? are you hiding it for google ?


    Good question and maybe.

    > I recomend using AJAX to do so


    Why? There are better ways. One that you included yourself.

    --
    Randy
    comp.lang.javascript FAQ - http://jibbering.com/faq & newsgroup weekly
    Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
    Randy Webb, May 2, 2006
    #2
    1. Advertising

  3. Spamless Guest

    On 2006-05-02, <> wrote:
    > Hi,
    > I have this website that doesn't work in Firefox 1.5:
    >
    > www.pianetaluca.com
    >
    > The HTML source is:
    >
    >
    > <TITLE>PianetaLuca</TITLE>
    > </HEAD>
    > <SCRIPT Language="Javascript">
    > document.writeln('<script type="text/javascript"
    > src="/contatore.js"><'+'\/script>');
    > document.writeln('<FRAMESET frameborder="0" border="0"
    > rows="100,*">');
    > document.writeln('<FRAME src="menu.html" scrolling="no"
    > frameborder="no" border="0" name="menu_frame">');
    > document.writeln('<FRAME src="benven.html" name="mainframe">');
    > document.writeln('</FRAMESET>');
    > </script>
    > </HTML>
    >
    > With IE everything works fine. But why have I got problems with Firefox
    > 1.5 (and not with the previous versions, say 1.0.3)? Is my javascript
    > code which is not good?


    The Javascript is fine. The HTML is junk. I guess that's why it
    "works" in IE (and earlier versions of Firefox).

    Firefox no longer allows HTML as bad as the page would create.
    Is it a frameset or does it have a body? If you can't make up
    your mind, firefox just has to guess. Depending upon where the
    line that loads the contatore.js appears, it will either assume
    it has a body (as you have it now - and so it disallows framesets)
    or framesets (and you don't get anything written by contatore.js).


    It is a frameset or does the document have a body?
    The contatore.js does a document.write to the body.
    THe original code claims it is a frameset.

    You can have one or the other (some browsers may actually put in a body
    with frameset, but ... it ain't right).

    The way you have it set up, you get the body (ALL you get is the code
    written by contatore.js) (that inclusion appears before the frameset
    and so it loads the contatore.js which does a document.write, forcing
    a body and so the [frameset] is then illegal).

    If you move the 'document.writeln('<script type="text/javascript"' to
    the end of the script section, then you get the frameset material first
    (but then contatore.js's document.write is illegal and that is missing).

    Try using a tool which shows the code after the browser loads the page and
    interprets and renders it, itself. Getting a copy of your contatore.js (and
    changing the code in the first part so it does not refer to the root, i.e.
    it is src="contatore.js" instead of src="/contatore.js") here is what the
    original gives as what the browser rendered:


    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="keywords" content="spagnolo,corso,lingua,tedesco,svedese,
    pronuncia,spagnola,grammatica,traduzione,traduzioni,luca,Luca,marceglia,Marceglia,Luca
    Marceglia,luca marceglia,
    programmi,programma,amiga,Amiga,programmi
    amiga,bici,viaggi,Londra,Peru,Finlandia
    programs,program,amiga programs,italian
    grammar,italian,grammar,gramatica,italiana,gramatica
    italiana,Vigo,vigo,erasmus,erasmus vigo,socrates,socrates vigo,catalano">
    <meta name="Description" content="Questa pagina contiene una grammatica di
    spagnolo, descrive la citta' di Vigo per gli studenti Erasmus e mostra i
    possibili giri in bicicletta nel bellunese. English available. Versisn en
    espaqol.">
    <link rel="shortcut icon" href="favicon.ico"><title>PianetaLuca</title>
    <script language="Javascript">
    document.writeln('<script type="text/javascript"
    src="contatore.js"><'+'\/script>');
    document.writeln('<FRAMESET frameborder="0" border="0" rows="100,*">');
    document.writeln('<FRAME src="menu.html" scrolling="no" frameborder="no"
    border="0" name="menu_frame">');
    document.writeln('<FRAME src="benven.html" name="mainframe">');
    document.writeln('</FRAMESET>');
    </script><script type="text/javascript"
    src="contatore.js"></script></head><body><a
    href="http://www.pianetaluca.com"><img src="/counter/spacer.gif"
    name="fixitlink" alt="htmlfixit counter" title="Counter provided by
    htmlfixit.com" border="0" height="2" width="1"></a>


    Above, you have the body (from contatore.js) and no frameset.


    Now, instead, move the first line of the script on the starting page
    to the end (so the frameset appears before the load of the contatore.js
    script). Then one has:


    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="keywords" content="spagnolo,corso,lingua,tedesco,svedese,
    pronuncia,spagnola,grammatica,traduzione,traduzioni,luca,Luca,marceglia,Marceglia,Luca
    Marceglia,luca marceglia,
    programmi,programma,amiga,Amiga,programmi
    amiga,bici,viaggi,Londra,Peru,Finlandia
    programs,program,amiga programs,italian
    grammar,italian,grammar,gramatica,italiana,gramatica
    italiana,Vigo,vigo,erasmus,erasmus vigo,socrates,socrates vigo,catalano">
    <meta name="Description" content="Questa pagina contiene una grammatica di
    spagnolo, descrive la citta' di Vigo per gli studenti Erasmus e mostra i
    possibili giri in bicicletta nel bellunese. English available. Versisn en
    espaqol.">
    <link rel="shortcut icon" href="favicon.ico"><title>PianetaLuca</title>
    <script language="Javascript">
    document.writeln('<FRAMESET frameborder="0" border="0" rows="100,*">');
    document.writeln('<FRAME src="menu.html" scrolling="no" frameborder="no"
    border="0" name="menu_frame">');
    document.writeln('<FRAME src="benven.html" name="mainframe">');
    document.writeln('</FRAMESET>');
    document.writeln('<script type="text/javascript"
    src="contatore.js"><'+'\/script>');
    </script><script type="text/javascript"
    src="contatore.js"></script></head><frameset frameborder="0" border="0"
    rows="100,*">
    <frame src="menu.html" frameborder="no" border="0" name="menu_frame"
    scrolling="no">
    <frame src="benven.html" name="mainframe">
    </frameset>


    Now you have the frameset, but miss out on the stuff written by
    contatore.js's document.write (this is a frameset and so has no
    body to write to).


    Now try changing the document.write in contatore.js to
    document.write("<noframes>"+str1+str2+str3+"</noframes>");
    and go back to the original order of the lines and get:


    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="keywords" content="spagnolo,corso,lingua,tedesco,svedese,
    pronuncia,spagnola,grammatica,traduzione,traduzioni,luca,Luca,marceglia,Marceglia,Luca
    Marceglia,luca marceglia,
    programmi,programma,amiga,Amiga,programmi
    amiga,bici,viaggi,Londra,Peru,Finlandia
    programs,program,amiga programs,italian
    grammar,italian,grammar,gramatica,italiana,gramatica
    italiana,Vigo,vigo,erasmus,erasmus vigo,socrates,socrates vigo,catalano">
    <meta name="Description" content="Questa pagina contiene una grammatica di
    spagnolo, descrive la citta' di Vigo per gli studenti Erasmus e mostra i
    possibili giri in bicicletta nel bellunese. English available. Versisn en
    espaqol.">
    <link rel="shortcut icon" href="favicon.ico"><title>PianetaLuca</title>
    <script language="Javascript">
    document.writeln('<script type="text/javascript"
    src="contatore.js"><'+'\/script>');
    document.writeln('<FRAMESET frameborder="0" border="0" rows="100,*">');
    document.writeln('<FRAME src="menu.html" scrolling="no" frameborder="no"
    border="0" name="menu_frame">');
    document.writeln('<FRAME src="benven.html" name="mainframe">');
    document.writeln('</FRAMESET>');
    </script><script type="text/javascript"
    src="contatore.js"></script></head><noframes><a
    href='http://www.pianetaluca.com'><img src="/counter/spacer.gif" border='0'
    width='1px' height='2px' name='fixitlink'alt='htmlfixit counter'
    title='Counter provided by htmlfixit.com' /></a></noframes><frameset
    frameborder="0" border="0" rows="100,*">
    <frame src="menu.html" frameborder="no" border="0" name="menu_frame"
    scrolling="no">
    <frame src="benven.html" name="mainframe">
    </frameset>


    BINGO! Got it all.

    You can write the contatore.js material to the page, but only in a noframes
    section if you want the frameset or put in another frame for its contents
    from a separate page.
    Spamless, May 3, 2006
    #3
  4. Guest

    Your message is crisp and clear. Thanks a lot for all the info you've
    given me.
    Now I fully understand why the code wasn't loaded.
    I learnt a lor from your post! Thank you so much! Now the page is
    working.

    You do know HTML!!!
    , May 3, 2006
    #4
    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. John
    Replies:
    2
    Views:
    6,876
  2. Alan Searle
    Replies:
    2
    Views:
    8,931
    Alan Searle
    Nov 20, 2005
  3. Bob
    Replies:
    24
    Views:
    1,528
  4. Replies:
    1
    Views:
    1,432
  5. VK
    Replies:
    9
    Views:
    97
Loading...

Share This Page