[Laszlo-dev] text selection and links not working in iframe (html element) in Safari
P T Withington
ptw at pobox.com
Tue Jun 30 17:41:20 PDT 2009
We must be doing something more than just attaching the handler. We
must be somehow stifling the event. Normally events go to the inner-
most DOM element first. The only way I can think that the iframe
could prevent an inner element from getting onclick is if it registers
for the 'capture' phase (which means it has to pass 'true', I think as
the last arg to attachEventHandler? That's the only way an outer
element can get hold of an event before an inner one.
On 2009-06-30, at 19:27EDT, Henry Minsky wrote:
> well, a simple test case doesn't show the bug, I can attach an onclick
> handler onto
> the main document of an iframe, and I can attach an onclick handler
> onto a
> span of text
> in the iframe, and clicking fires both handlers.
>
> So I guess I need to make a more detailed model of what we're doing
> with the
> event
> handler attacher in lz.embed.
>
>
> On Tue, Jun 30, 2009 at 6:52 PM, Henry Minsky <hminsky at laszlosystems.com
> >wrote:
>
>> Well, we're installing the event handlers for mousedown and click
>> onto the
>> actual iframe element in the DHTML app, so maybe that just stops
>> the event
>> from propagating into the iframe, in Safari and IE7. I'll set up a
>> simple
>> test case to see if that is the case. Maybe the whole 'capture/
>> bubble' model
>> gets broken if it crosses an iframe boundary in the browser.
>>
>>
>>
>>
>> On Tue, Jun 30, 2009 at 4:27 PM, P T Withington <ptw at pobox.com>
>> wrote:
>>
>>> Well something is weird because normally _adding_ a handler to
>>> mouse click
>>> does not cancel/intercept the event. If you just add a handler
>>> and don't
>>> call suppressDefault or cancelBubble, then the event should be
>>> seen by all
>>> the listeners (and by the browser default action).
>>>
>>> I know you were working in this area recently with respect to the
>>> keyboard
>>> update method that tries to pick off the shift keys from the mouse
>>> event.
>>> Maybe something went awry there? Or maybe the way the iframe
>>> manager is
>>> registering to listen to mouse events it screwing things up.
>>>
>>> If you listen in the 'capture' phase (i.e., grab the event before
>>> it is
>>> sent to any DOM elements, you can intercept the event; but I did
>>> not think
>>> we did that.
>>>
>>>
>>> On 2009-06-30, at 16:00EDT, Henry Minsky wrote:
>>>
>>> The text selection getting nuked is a bug in safari. The inability
>>> to
>>>> click
>>>> on a <a> link happens
>>>> in both safari and IE7 (it is due to the intercept of the 'click'
>>>> event)
>>>>
>>>> On Tue, Jun 30, 2009 at 3:58 PM, P T Withington <ptw at pobox.com>
>>>> wrote:
>>>>
>>>> On 2009-06-30, at 15:20EDT, Henry Minsky wrote:
>>>>>
>>>>> I isolated the bug in http://openlaszlo.org/jira/browse/LPP-8303
>>>>> down
>>>>> to
>>>>>
>>>>>> this code in iframemanager.js
>>>>>>
>>>>>> in __setSendMouseEvents , the iframemanager binds the
>>>>>> 'mousedown' and
>>>>>> 'click' events
>>>>>>
>>>>>> lz.embed.attachEventHandler(iframe.document,
>>>>>> 'mousedown',
>>>>>> lz.embed.iframemanager, '__mouseEvent', id);
>>>>>>
>>>>>> lz.embed.attachEventHandler(iframe.document, 'click',
>>>>>> lz.embed.iframemanager, '__mouseEvent', id);
>>>>>>
>>>>>> And those cause Safari to no longer be able to drag-select text
>>>>>> or to
>>>>>> click
>>>>>> on links.
>>>>>>
>>>>>> Is there some way we can re-send those events back to the
>>>>>> browser, if
>>>>>> thise
>>>>>> code is intercepting them?
>>>>>>
>>>>>>
>>>>> These events all bubble, but are also all cancellable. Is the
>>>>> event
>>>>> handler cancelling them or suppressing the default action?
>>>>>
>>>>> We're not grabbing these events in capture phase (before any DOM
>>>>> element
>>>>> gets to see them) are we?
>>>>>
>>>>> Is this _only_ a bug in Safari?
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Henry Minsky
>>>> Software Architect
>>>> hminsky at laszlosystems.com
>>>>
>>>
>>>
>>
>>
>> --
>> Henry Minsky
>> Software Architect
>> hminsky at laszlosystems.com
>>
>>
>>
>
>
> --
> Henry Minsky
> Software Architect
> hminsky at laszlosystems.com
More information about the Laszlo-dev
mailing list