Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #7889

Re: Changing letters in boxes

Message-ID <1784154.EMZun36R47@PointedEars.de> (permalink)
From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Organization PointedEars Software (PES)
Date 2011-10-31 02:19 +0100
Subject Re: Changing letters in boxes
Newsgroups comp.lang.javascript
References <1cb16076-87c8-4bc6-8007-1efddfb7530b@s10g2000yqa.googlegroups.com> <j8ji7m$fj8$1@dont-email.me> <3024323.SPkdTlGXAF@PointedEars.de> <j8kne2$1e3$1@dont-email.me>
Followup-To comp.lang.javascript

Followups directed to: comp.lang.javascript

Show all headers | View raw


Matt McDonald wrote:

> Thomas 'PointedEars' Lahn wrote:
>> Unreliable.  Especially MSHTML (the layout engine that Internet Explorer
>> uses) is prone to errors with `innerHTML' accesses in table structures.
>>
>> A safer approach is to remove all cells of the row except one, then
>> replace the content of the first cell and add more cells...
> 
> Agreed. Given the Table API that the DOM provides, usage of innerHTML
> here is erroneous, especially in IE. There's also, of course,
> createElement + appendChild if desired.
> 
> I wrote an article earlier today on this topic, except utilizing the DOM
> Table API (insertCell + deleteCell):
> 
> http://www.fortybelow.ca/hosted/comp-lang-javascript/table-cell-
replacement/
> 
> Comments are welcome.

One problem which what you dubbed "DOM Table Cell API" (there really is no 
official name for that part of the W3C DOM Level 2 HTML Specification) is 
that the W3C DOM API Specification and the MSHTML DOM API definition 
disagree (again, cf. HTMLSelectElement::add() [1]) with regard to the 
meaning of the method's arguments and its return value:

Both support the value -1 to append a new cell; but while the standards-
compliant implementation requires the number of existing cells to be passed 
for an alternative of that (tr.cells.length), MSHTML is at least documented 
to require tr.cells.length - 1.  Also, while the standards-compliant 
implementation is supposed to throw DOMException INDEX_SIZE_ERR on error, 
MSHTML is at least documented to throw no exception at all then, but to 
return "null" instead (which, for the ECMAScript binding, is the `null' 
value of the JScript implementation of the Null type). [2]

The same problem exists with 
HTMLTableElement/HTMLTableSectionElement::insertRow(). [3]

Those differences suggest the possibility of other differences between 
standards-compliant and other implementations than the MSHTML DOM in this 
area.  Therefore, I have intentionally used DOM Level 2+ Core methods in my 
example – for which I am not aware of such quirks – and made no mention of 
that "DOM Table Cell API".


PointedEars
___________
[1] <http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-14493106>
    <http://msdn.microsoft.com/en-us/library/ms535921(VS.85).aspx>
[2] <http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-68927016>
    <http://msdn.microsoft.com/en-us/library/ms536455(VS.85).aspx>
[3] <http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-93995626>
    <http://msdn.microsoft.com/en-us/library/ms536457(VS.85).aspx>
-- 
var bugRiddenCrashPronePieceOfJunk = (
    navigator.userAgent.indexOf('MSIE 5') != -1
    && navigator.userAgent.indexOf('Mac') != -1
)  // Plone, register_function.js:16

Back to comp.lang.javascript | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Changing letters in boxes fulio pen <fuliopen@yahoo.com> - 2011-10-30 05:26 -0700
  Re: Changing letters in boxes "Jukka K. Korpela" <jkorpela@cs.tut.fi> - 2011-10-30 15:08 +0200
    Re: Changing letters in boxes fulio pen <fuliopen@yahoo.com> - 2011-10-30 07:14 -0700
    Re: Changing letters in boxes fulio pen <fuliopen@yahoo.com> - 2011-10-30 10:22 -0700
      Re: Changing letters in boxes "Jukka K. Korpela" <jkorpela@cs.tut.fi> - 2011-10-30 20:14 +0200
        Re: Changing letters in boxes fulio pen <fuliopen@yahoo.com> - 2011-10-30 12:27 -0700
    Re: Changing letters in boxes Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2011-10-30 18:58 +0100
      Re: Changing letters in boxes Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2011-10-30 19:07 +0100
      Re: Changing letters in boxes Andrew Poulos <ap_prog@hotmail.com> - 2011-10-31 06:15 +1100
        Re: Changing letters in boxes Lasse Reichstein Nielsen <lrn.unread@gmail.com> - 2011-11-01 17:17 +0100
          Re: Changing letters in boxes Andrew Poulos <ap_prog@hotmail.com> - 2011-11-02 07:10 +1100
            Re: Changing letters in boxes Andreas Bergmaier <andber93@web.de> - 2011-11-01 23:37 +0100
              Re: Changing letters in boxes Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2011-11-02 00:20 +0100
        Re: Changing letters in boxes Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2011-11-01 18:01 +0100
      Re: Changing letters in boxes Matt McDonald <matt@fortybelow.ca> - 2011-10-30 17:42 -0600
        Re: Changing letters in boxes Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2011-10-31 02:19 +0100
          Re: Changing letters in boxes Matt McDonald <matt@fortybelow.ca> - 2011-10-31 21:29 -0600
            Re: Changing letters in boxes Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2011-11-01 11:52 +0100
      Re: Changing letters in boxes RobG <rgqld@iinet.net.au> - 2011-10-30 19:33 -0700
        Re: Changing letters in boxes "Jukka K. Korpela" <jkorpela@cs.tut.fi> - 2011-10-31 08:37 +0200
        Re: Changing letters in boxes Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2011-10-31 11:50 +0100
  Re: Changing letters in boxes faqir <faqir@faqir.com> - 2011-11-03 23:20 +0200

csiph-web