Changeset 961 for trunk/plugins


Ignore:
Timestamp:
02/02/08 18:30:42 (12 years ago)
Author:
ray
Message:

#1143 add Safari support

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/plugins/SmartReplace/smart-replace.js

    r752 r961  
    107107        var editor = this.editor; 
    108108        var charCode =  Xinha.is_ie ? ev.keyCode : ev.charCode; 
    109          
     109 
    110110        var key = String.fromCharCode(charCode); 
    111111 
     
    138138                 
    139139        var sel = editor.getSelection(); 
    140          
     140 
    141141        if (Xinha.is_ie) 
    142142        { 
     
    161161        else 
    162162        { 
    163                 if (!sel.isCollapsed) 
     163                var r = editor.createRange(sel); 
     164 
     165                if (!r.collapsed) 
    164166                { 
    165167                        editor.insertNodeAtSelection(document.createTextNode('')); 
    166168                } 
    167                 if (sel.anchorOffset > 0) sel.extend(sel.anchorNode,sel.anchorOffset-1); 
     169                if (r.startOffset > 0) r.setStart(r.startContainer, r.startOffset -1); 
     170 
    168171                 
    169                 if(sel.toString().match(/\S/)) 
    170                 { 
    171                         sel.collapse(sel.anchorNode,sel.anchorOffset); 
     172                if(r.toString().match(/[^\s\xA0]/)) 
     173                { 
     174                        r.collapse(false); 
    172175                        editor.insertNodeAtSelection(document.createTextNode(closing)); 
    173176                } 
    174177                else 
    175178                { 
    176                         sel.collapse(sel.anchorNode,sel.anchorOffset); 
    177                         editor.insertNodeAtSelection(document.createTextNode(opening)); 
    178                 } 
     179                        r.deleteContents(); 
     180                        editor.insertNodeAtSelection(document.createTextNode(' '+opening));                              
     181                } 
     182                editor.getSelection().collapseToEnd(); 
    179183        } 
    180184} 
     
    184188        var editor = this.editor; 
    185189        var sel = this.editor.getSelection(); 
     190        var r = this.editor.createRange(sel); 
     191         
    186192        if (Xinha.is_ie) 
    187193        { 
    188                 var r = this.editor.createRange(sel); 
    189194                r.moveStart('character', -2); 
    190195                 
     
    196201        else 
    197202        { 
    198                 sel.extend(sel.anchorNode,sel.anchorOffset-2); 
    199                 if(sel.toString().match(/^-/)) 
    200                 { 
     203                if (r.startOffset > 1) r.setStart(r.startContainer, r.startOffset -2); 
     204 
     205                if(r.toString().match(/^ -/)) 
     206                { 
     207                        r.deleteContents(); 
    201208                        this.editor.insertNodeAtSelection(document.createTextNode(' '+String.fromCharCode(8211))); 
    202209                } 
    203                 sel.collapse(sel.anchorNode,sel.anchorOffset); 
     210                editor.getSelection().collapseToEnd(); 
    204211        } 
    205212} 
Note: See TracChangeset for help on using the changeset viewer.