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

Mike Kamermans

Usenet Archive
Joined
Aug 10, 2004
Messages
14
Reaction score
0
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
 

Martin Honnen

Usenet Archive
Joined
Apr 8, 2000
Messages
6,174
Reaction score
0
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).
 

Mike Kamermans

Usenet Archive
Joined
Aug 10, 2004
Messages
14
Reaction score
0
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
 

Martin Honnen

Usenet Archive
Joined
Apr 8, 2000
Messages
6,174
Reaction score
0
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.
 

Mike Kamermans

Usenet Archive
Joined
Aug 10, 2004
Messages
14
Reaction score
0
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

No members online now.

Forum statistics

Threads
548,042
Messages
3,104,223
Members
248,131
Latest member
Tonypshaw1

Latest Threads

Top