- From: <bugzilla@jessica.w3.org>
- Date: Wed, 24 Apr 2013 09:10:18 +0000
- To: public-webapps-bugzilla@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=21066
--- Comment #17 from Hayato Ito <hayato@chromium.org> ---
(In reply to comment #16)
> InsertionParent cannot be used to generate the event path. Here's an example:
>
> <a>
> <span id=”one” />
> <span id=”two” />
> SR-a
> <b>
> <content id=”contentA”></content>
> SR-b
> <content id=”contentB” select=”#one”></content>
> <content id=”contentB2” select=”#two”></content>
>
>
> click -> #one:
> #one
> [contentA]
> [contentB]
> SR-b
> b
> SR-a
> a
>
> click -> #two:
> #two
> [contentA]
> [contentB2]
> SR-b
> b
> SR-a
> a
>
> #contentA's insertionParent cannot be both #contentB and #contentB2.
That's right. That's the reason we cannot use the current implementation of
element.insertionParent() to emulate event.path as I noted in
https://www.w3.org/Bugs/Public/show_bug.cgi?id=21067#c11
- event.path should contain insertion points, which does not appear in the
flattened tree.
The current element.insertionParent() cannot be used to traverse all
insertion points in case of reprojection.
- We need a *context* to determine insertionPoint.insertionParent().
e.g. To determine #contentA's insertionParent, we need an additional context
(from where we are starting a path).
In the above case, the context is #one or #two.
One idea is to make insertionParent() take additional parameter.
For example:
contentA.insertionParent(#one) -> contentB
contentA.insertionParent(#two) -> contentB2
Now, event.path can be emulated:
var originalEventTarget = ....; // #one or #two
var element = originalEventTarget;
var eventPath = [element];
while (element.insertionParent(originalEventTarget)) {
element = element.insertionParent(originalEventTarget);
// element might be an 'insertion point' in this case.
eventPath.push(element);
}
WDYT? Is this a reasonable API?
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Wednesday, 24 April 2013 09:10:23 UTC