On 1/17/2011 3:17 PM, Alex wrote:
> On 1/17/2011 2:02 PM, Roan Kattouw wrote:
>> 2011/1/16 Alex <[email protected]>:
>>> I tried to integrate it as neatly as possible, though the lack of
>>> documentation hasn't helped. Everything works fine, except when using
>>> IE. In IE, it just inserts the ref in some random location on the page,
>>> sometimes *near* where the cursor/highlight is, but sometimes its not
>>> even close. It seems to work differently with different compatibility
>>> mode settings, but even that isn't consistent. I've looked at some of
>>> the WikiEditor code and can't figure out why it isn't working, when the
>>> other dialogs in the standard toolbar work just fine.
>>>
>> Yeah IE has some nasty issues with selections.
>>
>> Have you tried calling .dialog( 'close' ) before doAction() instead of
>> after? That's the only difference I can find between your code and the
>> built-in dialogs.
>>
> 
> No, that still didn't fix it. From some further testing, it looks like
> the regular dialogs are also broken in the current IE9 beta when using
> IE9 standards document mode.
> 
> However, I found my dialogs do work in IE (except in IE9 standards mode)
> if some text is actually selected. It seems to forget the cursor
> position if nothing is selected and just places it randomly.
> 

Based on this discovery, I tested a complete shot in the dark, and
managed to fix it (or at least work around it). Before inserting the
actual content, I have it insert a single space. Why it works I'm not
entirely sure, but it does. The code is now:

        buttons: {
          'cite-form-submit': function() {
            $j.wikiEditor.modules.toolbar.fn.doAction( $j(this).data(
'context' ), {
              type: 'encapsulate',
              options: {
                peri: ' '
              }
            }, $j(this) );
            var ref = CiteTB.getRef(false, true);
            $j(this).dialog( 'close' );
            $j.wikiEditor.modules.toolbar.fn.doAction( $j(this).data(
'context' ), {
              type: 'encapsulate',
              options: {
                pre: ref
              }
            }, $j(this) );
          },


I've filed a bug for the IE9 standards mode issue that affects all the
dialogs (not just mine).
https://bugzilla.wikimedia.org/show_bug.cgi?id=26785

-- 
Alex (wikipedia:en:User:Mr.Z-man)

_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to