Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #33875
| Path | csiph.com!.POSTED.194-73-239-109.cust.centrio.cz!not-for-mail |
|---|---|
| From | Cezary Tomczyk <cezary.tomczyk@gmail.com> |
| Newsgroups | comp.lang.javascript |
| Subject | Re: Inserting stuff received with AJAX into the DOM |
| Date | Sat, 26 Aug 2017 09:25:44 +0200 |
| Organization | csiph.com Internet News Service |
| Message-ID | <onr7pm$ppa$1@csiph.com> (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> <8133365.CDJkKcVGEf@PointedEars.de> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=utf-8; format=flowed |
| Content-Transfer-Encoding | 8bit |
| Injection-Date | Sat, 26 Aug 2017 07:25:43 +0000 (UTC) |
| Injection-Info | csiph.com; posting-host="194-73-239-109.cust.centrio.cz:109.239.73.194"; logging-data="26410"; mail-complaints-to="admin@kev009.com" |
| User-Agent | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 |
| In-Reply-To | <8133365.CDJkKcVGEf@PointedEars.de> |
| Content-Language | en-GB |
| Xref | csiph.com comp.lang.javascript:33875 |
Show key headers only | View raw
On 21/08/2017 22:16, Thomas 'PointedEars' Lahn wrote: > 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? No. I was expecting you'll do that. >>>> 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. Got it, but still I claim that in that particular case I would not test it. >> 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)? > You have claimed that this method can never return something unsuitable. Let me clarify it: it may return something unexpected, but I've never tested return value from createElement method before I use it because 1) it was always working as expected and 2) I haven't got any scenario where I could say it's required. >>>> 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? Generally yes, but as for the returns from createElement method I do not do that. >> 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*? Own experience. I'd rather strongly urge to give me a scenarios where createElement method returns something different than created HTML element. I'd like to understand why do I need to test a return value of createElement method if it's actually a reference to an object, before I attempt to access to it's properties. -- Cezary Tomczyk http://www.ctomczyk.pl/
Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll 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