SourceForge has been redesigned. Learn more.

Browser discrepancies in 3.6b simple example

  • Nathan Carter

    Nathan Carter - 2009-05-26

    I downloaded and unpacked jsMath 3.6b, and created my own very small test.html file inside the jsMath folder.  It contains just this HTML code:

            <script src='easy/load.js'></script>
            <p>Some math: <span class='math'>x^2</span></p>
            <script>jsMath.Process( document );</script>

    The problem is that even this baby example only works on some browsers, but not others.  I suspect I'm doing something wrong, because every browser I tried displays the much more complicated test cases from correctly.

    Here are the specifics.

    I open the file in Firefox (3.0.6) on a Mac (OS X 10.5.6) and it behaves as expected; it initially shows up as x^2, and immediately later becomes typeset, with the "Processing Math: Done" window in the lower left.

    But using Safari 4 Public Beta (5528.16) on the same Mac, it initially shows up as x^2, and the lower left message box says "Loading jsMath..." and it never progresses beyond that point.  In Safari preferences, Javascript is enabled.

    So I tried on some other systems.  Here are the results:
    On Firefox 3.0.10 on Ubuntu 8.10, I get the same behavior as I did on Safari on the Mac (well, okay, with an additional "no TeX fonts" warning that's not relevant).
    On Firefox 3.0.8 on Windows XP, I get the correct behavior (described above under Firefox 3.0.6 on Mac).
    On MSIE 6 on Windows XP, I get no typesetting, and the following Javascript error:
        Line: 5
        Char: 1
        Error: Object doesn't support this property or method.
        Code: 0
        URL: file://m:\jsMath\test.html

    Why this wide variation in behaviors in such a simple test case?  What did I do wrong?

    My main purpose is to get it working on Safari, because I'm actually working on using jsMath in an application that embeds Webkit, and thus behaves much like Safari.

    Thank you for any help available!


    PS: I was doing a much more complicated example which sometimes worked and sometimes didn't, and I boiled it down to a failure in this simple case, at which point I was completely flummoxed and turned to this forum for help.  Help! :)

    • Davide P. Cervone

      Try putting a <HEAD> section in the document. This is actually required for properly formed HTML4.0, and it is needed by jsMath to do some of its initialization (e.g., it puts stylesheet information into the document HEAD).  If the HEAD is missing, jsMath will fail in some browsers (Safari for one).  Other browsers seem to insert a blank HEAD if it is missing.

      See if that works.


      • Nathan Carter

        Nathan Carter - 2009-05-27

        That fixed it!  Thank you very much for the quick help!

        I feel quite stupid that it was something so simple, yet at the same time am quite glad it was something so simple.

        For the benefit of others in the future, is it possible for jsMath to check for existence of a document HEAD, and if it's not there, yell at you with alert() or something?  Just a thought.

        But thank you again for the help!



Log in to post a comment.