Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #23355
| Message-ID | <107217521.8C7GdJjoVz@PointedEars.de> (permalink) |
|---|---|
| From | Thomas 'PointedEars' Lahn <PointedEars@web.de> |
| Organization | PointedEars Software (PES) |
| Date | 2014-02-27 22:32 +0100 |
| Subject | Re: Get inner text of HMTL element |
| Newsgroups | comp.lang.javascript |
| References | (8 earlier) <lecuah$mib$9@dont-email.me> <2932926.BXQvjz4BgK@PointedEars.de> <leg8e4$q6d$1@dont-email.me> <1651063.34UYyxniXp@PointedEars.de> <leo7to$edn$1@dont-email.me> |
Cezary Tomczyk wrote:
> Thomas 'PointedEars' Lahn wrote:
>> Cezary Tomczyk wrote:
> [...]
>>> You probably referring to
>>> http://robertnyman.com/2005/12/21/what-is-typeof-unknown/#comment-8001,
>>> right?
>>
>> I would not refer to such nonsense.
>
> Just one sentence doesn't explain what is behind "nonsense".
What do you mean by that?
>>>> last branch. Anyhow, there is no guarantee that if some arbitrary
>>>> element object has a “firstChild” or “nextSibling” property, the
>>>> *target* element object also has it.
>>>>
>>>> Do you see now why it is a bad idea to infer from one property to
>>>> another, even if the property names are the same and only the objects
>>>> differ?
>>>
>>> Then what options do I have?
>>>
>>> 1. Check, if firstChild and nextSibling is available on
>>> document.documentElement
>>> or
>>> 2. Check, if every element support firstChild and nextSibling?
>>
>> 3. Check if the *target* element supports “firstChild” and “nextSibling”.
>
> Ok
>
>> 4. Forget the whole idea.
>
> Except point no. 3.
What do you mean by that?
>>>>>>> get_inner_text = function(node) {
>>>>>>> var txt = '';
>>>>>>>
>>>>>>> node = node.firstChild;
>>>>>>> while (node) {
>>>>>>> if (node.nodeType === 3 || node.nodeType === 4) {
>>>>>>
>>>>>> I avoid strict comparison against property values of host objects.
>>>>>> There are too many unknowns.
>>>>>
>>>>> I've never had problems with that, but I am not claim that there is no
>>>>> problems. However, if you have a time then provide maybe some valuable
>>>>> source where I can read about above problems. Otherwise, skip it, in
>>>>> case of having no time.
>>>>
>>>> You are still operating in “Show me where it fails” mode in place of
>>>> logic.
>>>
>>> But "There are too many unknowns." doesn't teach me why.
>>
>> There is no indication that an interface’s *attribute* MUST be
>> implemented as a host object’s property using a *native* type or the
>> *specified* type. However, if it is to be useful, it must be implemented
>> so that it allows conversion to and from a native type.
>
> Hm, I am lost at that point.
What did you not understand?
> [...]
>>>> No, same problem: The feature test does not happen on the target object
>>>> because that object is not reliably accessible yet (if it even exists).
>>>
>>> So, the object itself must checked as well. It is in your above code,
>>> right?
>>
>> You can and should skip the first *bogus* test, and do *only* the
>> *reliable* test on the target object. This comes at a price, though: if
>> you cannot recognize the object (for example, through mapping), you will
>> be forced to do the same test for each object when it is accessed. AISB:
>> Slower, but not as error-prone as your/DM’s “one-size-fits-all”
>> initialization or whatever you/he call(s) it instead.
>
> How reliable test on the target object may look in my case? Asking to
> understand more deeply.
In your case, AFAICS the target object is an arbitrary element object and,
because of recursion, each of its descendant node objects. So you will have
to test each of those objects at least once. (Of course, if “textContent”
is supported on the element object of your initial serialization call, you
can return its value and are done. No iteration and recursion necessary
then.)
You could assume that in a consistent DOM implementation if the node type
and/or the element type were the same as before, they would support the same
properties, and you could skip the feature test based on previous knowledge.
Also, if an element had an ID, you could store feature test results by ID.
But there is no guarantee that this works (it certainly does not need to
work if the document is modified between calls). And it requires *more*
tests at runtime (you need to test more properties than before), a *larger*
effective scope chain or argument list (a recursively called function has no
access to the local context of its caller) and/or *more* memory (the
information for the lookup needs to be stored). So you better forget that
idea of “optimization”.
--
PointedEars
FAQ: <http://PointedEars.de/faq> | SVN: <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
Get inner text of HMTL element Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2014-02-22 18:21 +0100
Re: Get inner text of HMTL element Martin Honnen <mahotrash@yahoo.de> - 2014-02-22 19:31 +0100
Re: Get inner text of HMTL element Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2014-02-22 20:51 +0100
Re: Get inner text of HMTL element Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-02-22 21:11 +0100
Re: Get inner text of HMTL element Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2014-02-22 21:37 +0100
Re: Get inner text of HMTL element Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-02-22 22:05 +0100
Re: Get inner text of HMTL element Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2014-02-22 23:38 +0100
Re: Get inner text of HMTL element Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-02-23 10:43 +0100
Re: Get inner text of HMTL element Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2014-02-23 14:50 +0100
Re: Get inner text of HMTL element Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-02-23 15:48 +0100
Re: Get inner text of HMTL element Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2014-02-24 21:01 +0100
Re: Get inner text of HMTL element Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-02-24 22:34 +0100
Re: Get inner text of HMTL element Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2014-02-27 21:41 +0100
Re: Get inner text of HMTL element Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-02-27 22:32 +0100
Re: Get inner text of HMTL element Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2014-02-28 13:44 +0100
Re: Get inner text of HMTL element Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-02-28 16:54 +0100
Re: Get inner text of HMTL element Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2014-03-04 20:51 +0100
Re: Get inner text of HMTL element ompalompasales2@gmail.com - 2014-03-04 12:59 -0800
Re: Get inner text of HMTL element Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-02-22 20:59 +0100
Re: Get inner text of HMTL element Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2014-02-22 22:23 +0100
Re: Get inner text of HMTL element Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-02-22 23:32 +0100
Re: Get inner text of HMTL element Joao Rodrigues <groups_jr-1@yahoo.com.br> - 2014-02-22 21:27 -0300
Re: Get inner text of HMTL element "se" <se@no-one.here> - 2014-02-23 05:35 +0100
Re: Get inner text of HMTL element Joao Rodrigues <groups_jr-1@yahoo.com.br> - 2014-02-23 15:29 -0300
Re: Get inner text of HMTL element "se" <se@no-one.here> - 2014-02-23 21:01 +0100
Re: Get inner text of HMTL element Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2014-02-23 20:02 +0100
Re: Get inner text of HMTL element Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-02-23 21:55 +0100
Re: Get inner text of HMTL element Cezary Tomczyk <cezary.tomczyk@gmail.com> - 2014-02-24 08:37 +0100
Re: Get inner text of HMTL element Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-02-24 12:30 +0100
Re: Get inner text of HMTL element Joao Rodrigues <groups_jr-1@yahoo.com.br> - 2014-02-24 15:09 -0300
Re: Get inner text of HMTL element Christoph Michael Becker <cmbecker69@arcor.de> - 2014-02-24 19:43 +0100
Re: Get inner text of HMTL element Joao Rodrigues <groups_jr-1@yahoo.com.br> - 2014-02-24 18:12 -0300
Re: Get inner text of HMTL element Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-02-24 22:51 +0100
Re: Get inner text of HMTL element Dr J R Stockton <reply1400@merlyn.demon.co.uk.invalid> - 2014-02-25 19:49 +0000
Re: Get inner text of HMTL element Joao Rodrigues <groups_jr-1@yahoo.com.br> - 2014-02-26 05:20 -0300
Re: Get inner text of HMTL element "se" <se@no-one.here> - 2014-02-26 17:10 +0100
OT - Re: Get inner text of HMTL element Joao Rodrigues <groups_jr-1@yahoo.com.br> - 2014-02-26 15:48 -0300
Re: OT - Re: Get inner text of HMTL element "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2014-02-26 22:43 +0100
Re: OT - Re: Get inner text of HMTL element Dr J R Stockton <reply1400@merlyn.demon.co.uk.invalid> - 2014-02-27 15:00 +0000
Re: OT - Re: Get inner text of HMTL element "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2014-02-28 10:50 +0100
Re: OT - Re: Get inner text of HMTL element "se" <se@no-one.here> - 2014-02-27 10:57 +0100
Re: Get inner text of HMTL element Dr J R Stockton <reply1400@merlyn.demon.co.uk.invalid> - 2014-02-27 15:46 +0000
csiph-web