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


Groups > comp.lang.javascript > #33851

Re: Inserting stuff received with AJAX into the DOM

Path csiph.com!feeder.erje.net!1.eu.feeder.erje.net!news.mb-net.net!open-news-network.org!.POSTED.75.236.197.178.dynamic.wless.lssmb00p-cgnat.res.cust.swisscom.ch!not-for-mail
From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Newsgroups comp.lang.javascript
Subject Re: Inserting stuff received with AJAX into the DOM
Date Mon, 21 Aug 2017 22:16:06 +0200
Organization PointedEars Software (PES)
Lines 89
Message-ID <8133365.CDJkKcVGEf@PointedEars.de> (permalink)
References <7e54d58e-0ce6-4bb5-9f07-f65b69a94a64@googlegroups.com> <5846bd55-f0bd-4088-a596-aba50eef32a5@googlegroups.com> <DOM-insertation-20170819210612@ram.dialup.fu-berlin.de> <11843581.uLZWGnKmhe@PointedEars.de> <onc4cc$2mkt$1@csiph.com> <7340100.T7Z3S40VBb@PointedEars.de> <oncp61$2o9$1@csiph.com> <19530051.EfDdHjke4D@PointedEars.de> <ondujg$rus$1@csiph.com> <6718455.EvYhyI6sBW@PointedEars.de> <onetvb$1gto$1@csiph.com> <3126118.iIbC2pHGDl@PointedEars.de> <onf6h2$1mrv$1@csiph.com>
Reply-To Thomas 'PointedEars' Lahn <cljs@PointedEars.de>
Mime-Version 1.0
Content-Type text/plain; charset="UTF-8"
Content-Transfer-Encoding 8Bit
Injection-Info gwaiyur.mb-net.net; posting-host="75.236.197.178.dynamic.wless.lssmb00p-cgnat.res.cust.swisscom.ch:178.197.236.75"; logging-data="30239"; mail-complaints-to="abuse@open-news-network.org"
User-Agent KNode/4.14.2
Cancel-Lock sha1:uCEi0VIijRJa2CN1WA3brKP1NKk=
X-User-ID U2FsdGVkX1/GBZAjrBLdEbS2uSvuUSXpGxYus+te6KSothKHZ4tKaA==
X-Face %i>XG-yXR'\"2P/C_aO%~;2o~?g0pPKmbOw^=NT`tprDEf++D.m7"}HW6.#=U:?2GGctkL,f89@H46O$ASoW&?s}.k+&.<b';Md8`dH6iqhT)6C^.Px|[=M@7=Ik[_w<%n1Up"LPQNu2m8|L!/3iby{-]A+#YE}Kl{Cw$\U!kD%K}\2jz"QQP6Uqr],./"?;=4v
Face iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEXTxa4RFk5dUWANED8PFEfy7+MGBiW+n3ZNF/QuAAACaElEQVQ4jVXUwVOcMBQG8Dc7Rc4PUntdWV2uxjDpGaGeozOp1woar4jd5t/v9wLstMwsA/ntlxdCAgUc1hjTc9/JCZfGoo3wG3HdmdAWrIJRHe7GM/TmpY5VFefuVcAkkPbLIaN8rmPmjloyZxgyR3GuJ4K0AGtJ2htz8o7yqikm759fldQXaMpbDzjKAG+8v+AugVTOPO5DOjLvGtUYQwh0CPjnVMyGd+8/GfUB5nLKJDD2aLDh5HYyMDJGDwQIo2ZmZcKbowNmAdB/AzyFhrmF2MHRb0QJJfaAnwGB6orZhoykLzJtGwF/xpYxI1dswomiUj3gTuAIqCn/4C7cULwGNBtwMTk3Y4LfKB5YUaOKBKYtpplm7u0vip8tU1NWWyI/7XdcSuIDoMt6rVHMWT0DbjHPGqDqZVSa6zleLcUTcIKLoMv3ueJluALtAo9B302zPPlrtiVScRdCjXvVh3e3JpYa/jjkuC9N+LrBMlz/eAN4eQijX2EdLo6c5tGGHwLyHFtXk89dDGHwCVhG9T0S/j55AhRZgkMCmUQXJ49TnS1wnQDvw0eAh9ICeMmEFbCnPMFzjAvsWoEWEFdYEx+S0MoUZ1gT1wId8+AF3Bl2OoEu906AUHx5VLw/gXYg/x84loOah/2UYNrgiwSwGO7RfUzVBbx/kgpckumGOi6QirtD6gkLTitbnxNol47S2jVc2vsN5kPqaAHT8uUdAJM4v/DanjYOwmUjWznGfwB7sGtAtor5BgofDuzaRj4kSQAqDakTsKORa3Q3xKi3gE1fhl71KRMqrdZ2AWNNg/YOhQyrVBnb+i+nEg4bsDA+egAAAABJRU5ErkJggg==
Xref csiph.com comp.lang.javascript:33851

Show key headers only | View raw


Cezary Tomczyk wrote:

> On 21/08/2017 17:47, Thomas 'PointedEars' Lahn wrote:
>> Cezary Tomczyk wrote:
>>> On 21/08/2017 16:44, Thomas 'PointedEars' Lahn wrote:
>>>> Cezary Tomczyk wrote:
>>>>> I am sure that:
>>>>>
>>>>> const par = document.createElement( 'p' );
>>>>>
>>>>> will always create HTML element. I can't see any real scenario where
>>>>> createElement method will return "something else than a reference to
>>>>> an object that has a method named “appendChild”" in that particular
>>>>> scenario.
>>>>
>>>> Why?
>>>
>>> https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement
>>> […]
>> Certainly you can come up with something better than hearsay.
> 
> Possibly there is a better explanation than just hearsay.

Possibly.  Can you come up with it?
 
>>> In that particular case:
>>>
>>> const par = document.createElement( 'p' );
>>>
>>> this will return an HTML p element.
>> 
>> It may.
> 
> Well, recently you wrote:
> 
> "As a rule of thumb, if the object in question always had the method and
> it always worked, I do not feature-test it."
> 
> Isn't now that case?

This is not about not feature-testing the createElement() method.  It is 
about testing its return value before using that.
 
> I might be wrong, but if there are cases that may strongly require "if"
> here then I'd like to know.

You are trying to shift the burden of proof again.  You have claimed that 
this method can never return something unsuitable.  So how do *you* support 
that claim *other* than with hearsay from MDN (I called it “hearsay” because 
it is a wiki and there is no other reference attached to your claim)?
 
>>> I would say and even, if it'll occur then calling "appendChild" later
>>> will throw a DOM exception which I think it's good because it helps to
>>> catch the error on an early stage.
>> An exception, but not a “DOM exception” will be thrown, if the object
>> does not have the method.  Or execution will simply stop with an error. 
>> Who knows.  createElement() is a host object’s method.
> 
> Right, an exception.

So, what if no exception is being thrown by a method, would you not want to 
make sure as best as you can that the return value of a method is actually a 
reference to an object, before you attempt to access its properties?
 
> createElement() is a host object’s method, but it was always available

This is simply not true.  Maybe you are too young to know it:

Before the W3C DOM, which became a W3C Recommendation in 1998 CE (and was 
quickly adopted through Mozilla 1.0 in 2000), there have been element 
objects that did not have that method because it was introduced with the 
aforementioned API.

In what was called “Dynamic HTML” (DHTML) at the time, in Netscape Navigator 
(and later, Communicator) 4.x, there were layer objects for `LAYER` (and 
IIRC, `DIV`) elements whose content you could replace by calling their 
write() method; and in Internet Explorer and other MSHTML-based user agents 
there were element objects which had only the “innerHTML” and “outerHTML” 
properties, and several other methods (like insertAdjacentHTML() recently 
mentioned by Martin) for this instead.

> and unless it's not modified it has been always working quite good.

Based on what *data*?
 
-- 
PointedEars
FAQ: <http://PointedEars.de/faq> | <http://PointedEars.de/es-matrix>
<https://github.com/PointedEars> | <http://PointedEars.de/wsvn/>
Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail.

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


Thread

Inserting stuff received with AJAX into the DOM bit-naughty@hotmail.com - 2017-08-19 12:35 -0700
  Re: Inserting stuff received with AJAX into the DOM bit-naughty@hotmail.com - 2017-08-19 12:55 -0700
    Re: Inserting stuff received with AJAX into the DOM Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-08-20 12:16 +0200
      Re: Inserting stuff received with AJAX into the DOM Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2017-08-20 15:55 +0200
        Re: Inserting stuff received with AJAX into the DOM Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-08-20 19:18 +0200
          Re: Inserting stuff received with AJAX into the DOM Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2017-08-20 21:50 +0200
            Re: Inserting stuff received with AJAX into the DOM Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-08-20 22:39 +0200
              Re: Inserting stuff received with AJAX into the DOM Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2017-08-21 08:29 +0200
                Re: Inserting stuff received with AJAX into the DOM Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-08-21 16:44 +0200
                Re: Inserting stuff received with AJAX into the DOM Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2017-08-21 17:24 +0200
                Re: Inserting stuff received with AJAX into the DOM Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-08-21 17:47 +0200
                Re: Inserting stuff received with AJAX into the DOM Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2017-08-21 19:50 +0200
                Re: Inserting stuff received with AJAX into the DOM Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-08-21 22:16 +0200
                Re: Inserting stuff received with AJAX into the DOM Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2017-08-26 09:25 +0200
                Re: Inserting stuff received with AJAX into the DOM Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-08-27 03:02 +0200
  Re: Inserting stuff received with AJAX into the DOM Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-08-20 12:30 +0200
  Re: Inserting stuff received with AJAX into the DOM bit-naughty@hotmail.com - 2017-08-20 07:37 -0700
    Re: Inserting stuff received with AJAX into the DOM "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2017-08-20 17:17 +0200
    Re: Inserting stuff received with AJAX into the DOM Tim Streater <timstreater@greenbee.net> - 2017-08-20 17:48 +0100
  Re: Inserting stuff received with AJAX into the DOM bit-naughty@hotmail.com - 2017-08-20 11:21 -0700
    Re: Inserting stuff received with AJAX into the DOM Tim Streater <timstreater@greenbee.net> - 2017-08-20 19:29 +0100
    Re: Inserting stuff received with AJAX into the DOM "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2017-08-21 01:29 +0200
      Re: Inserting stuff received with AJAX into the DOM Andrew Poulos <ap_prog@hotmail.com> - 2017-08-21 16:29 +1000
        Re: Inserting stuff received with AJAX into the DOM "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2017-08-21 12:25 +0200
        Re: Inserting stuff received with AJAX into the DOM Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-08-21 16:47 +0200

csiph-web