How do I make a mix of html/xml work?

M

Mike Kamermans

I have an XML document that, in order to save b/w for both server and
users, uses a few emtpy tags a la "<add/>" and "<edit/>" in the source,
which [should] get javascript replaced once the document is done loading
into their full form (for <add/>, this would be something like <img
src="add.gif" border="0" onClick="javascript:handleEvent(this,'add')">).

In order to do this I figured the documented needed to use a few html
tags as well (mainly, it needed head, title, script and body), but I'm
not quite certain how to make this work. I've changed my dtd to read:

<!element html (head, body)>
<!element head (title, script)>
<!element title (#PCDATA*)>
<!element script (#PCDATA*)>
<!attlist script language CDATA #REQUIRED>
<!attlist script version CDATA #REQUIRED>
<!element body (list)>

where the
  • element is the root node of my own XML data. The xml
    file itself looks like:

    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <?xml-stylesheet href="nr-kvis.css" type="text/css"?>
    <!DOCTYPE html SYSTEM "NR-jouyou.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>???? level 1 (80 ??)</title>
    <script language="JavaScript" version="1.0">
    <!-- commented off to prevent parse errors as usual -->
    </script>
    </head>
    <body onLoad="javacsript:addInteraction()">
    <list xmlns="http://www.nihongoresources.com/jouyou">
    [...xml in the nihongoresources namespace...]
    </list>
    </body
    </html>

    When I load this in firefox (quite a nice browser that's very xml
    friendly) the javascript is never called.

    A second issue is that if I include an html namespace element inside the
    <list> content using for instance:

    <html:img src="someimage.gif"/>

    upon validation I get the error that "the html namespace is not bound". I
    know that the xml I use changes the default namespace to list's namespace
    while inside the list element, but I didn't know it voided html's as
    well.. how do I bind and element to a namespace so I can use it anywhere
    in my xml?

    - Mike Kamermans
    www.nihongoresources.com
 
M

Martin Honnen

Mike Kamermans wrote:

<script language="JavaScript" version="1.0">
<!-- commented off to prevent parse errors as usual -->
</script>

That should be
<script type="text/javascript">
//<![CDATA[

//]]>
</script>
</head>
<body onLoad="javacsript:addInteraction()">

XHTML is case-sensitive:
<body onload="addInterval();">
then I think it should work (if you serve up the XHTML with the proper
content type application/xhtml+xml).
 
M

Mike Kamermans

implementing the xhtml changes has it loading, but now I'm facing another
problem... how to get the element node that called a javascript function.

In html context this could be done using 'this', and making the javascript
function have an event as argument, then calling event.target in body of
the function and working with that - in xhtml context this doesn't seem to
work... is there another keyword that can be used (or fetch instruction)
that allows me to figure out which element called a function that you know
of?

- Mike Kamermans
www.nihongoresources.com
 
M

Martin Honnen

Mike Kamermans wrote:

how to get the element node that called a javascript function.

In html context this could be done using 'this', and making the javascript
function have an event as argument, then calling event.target in body of
the function and working with that - in xhtml context this doesn't seem to
work...

It should work, the W3C DOM Events model applies to both HTML and XHTML
so scripting events shouldn't change with Mozilla whether you serve
text/html or application/xhtml.
If you have problems to get it to work then make a small test case and
post it here or better even post its URL.
 
M

Mike Kamermans

Martin,
It should work, the W3C DOM Events model applies to both HTML and
XHTML so scripting events shouldn't change with Mozilla whether you
serve text/html or application/xhtml.
If you have problems to get it to work then make a small test case and
post it here or better even post its URL.

I've posted a new message with a URL under the subject "using "this" in
javascript/XHTML". Maybe you can spot an obvious mistake in the file that
I'm overlooking...

Regards,

Mike
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,770
Messages
2,569,583
Members
45,073
Latest member
DarinCeden

Latest Threads

Top