You are here: Re: Advice re. anchor within a table and handling var. browsers « HTML « IT news, forums, messages
Re: Advice re. anchor within a table and handling var. browsers

Posted by Steve Pugh on 04/20/07 12:51

On Apr 20, 1:27 pm, j...@ntlworld.com wrote:
> Hi,
>
> I am developing an app. and I want to allow people to answer questions
> and jump the list of questions up as they do it. I can make this work
> but IE6 requires slightly different HTML than Firefox and Opera.
> See below...
>
> ** IE6 example *****
> <table id="qtab">
> <tr><a name='Q1'></a><td colspan=4> </td></tr>"

This is invalid. A is not allowed as a direct child of tr.

> <tr>
> <td class="q">Considers opportunities for growth and change.</td>
> <td class="a"><input .............></td>
> <td class="a"><input .............></td>
> <td class="a"><input .............></td>
> </tr>
> * tr repeated
> </table>
>
> ** Firefox/Opera example *****
> <table id="qtab">
> <tr><td><a name='Q1'></a></td><td colspan=3> </td></tr>"
> <tr>
> <td class="q">Considers opportunities for growth and change.</td>
> <td class="a"><input .............></td>
> <td class="a"><input .............></td>
> <td class="a"><input .............></td>
> </tr>
> * tr repeated
> </table>
>
> As you can see Firefox and Opera require the anchor Q1 to be within a
> TD. IE won't work with that setup and needs the anchor not to be
> defined within a table element.

But in your example it is. It's very much inside the table element,
and inside the table row element, but it isn't inside the table cell,
which is where it must go in order to be valid.

>
> The following script deals with this situation
>
> <table id="qtab">
> <script language="JavaScript">

This is also invalid. Script is not allowed as a direct child of
table.

> if (navigator.appName=="Microsoft Internet Explorer")
> { document.write("<a name='Q1'></a><td colspan=8> </td></tr>") }
> else
> { document.write("<td><a name='Q1'></a></td><td colspan=7>
> </td></tr>") }
> </script>


> but it doesn't seem very elegant. I'm not very happy with bits of
> script all through the page like this (as the page has a large number of
> questions on it).

And if the user doesn't have JavaScript there's nothing inserted at
all. Not a bad situation as those empty rows really shouldn't be
there.

> Can anyone suggest a better way?

<tr>
<td class="q" id="Q1">Considers opportunities for growth and change.</
td>

Decent browsers will link directly to the id. If this doesn't work
then try
<tr>
<td class="q"><a name="Q1" id="Q1">Considers opportunities for growth
and change.</a></td>

But also, consider creating your questions as fieldsets/legends.

Steve

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация