Changeset 521


Ignore:
Timestamp:
08/09/08 19:58:01 (4 years ago)
Author:
s.lewis
Message:

Added code to plugin1 to test the SAPI.cacheSelection and SAPI.restoreSelection methods

Location:
branches/scott/0.6-a4/js/plugins
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/scott/0.6-a4/js/plugins/plugin1/test.js

    r506 r521  
    1818            behaviors: { 
    1919                mouseover: function(e) { 
    20                     $('#log').html('Plugin for<br /> WYMeditor Instance ' + e.data._index); 
     20                    // $('#log').html('Plugin for<br /> WYMeditor Instance ' + e.data.parent._index); 
    2121                }, 
    2222                mouseout: function(e) { 
    23                     $('#log').html(''); 
     23                    // $('#log').html(''); 
    2424                }, 
    2525                click: function(e) { 
    2626                    e.preventDefault(); 
     27                    e.data.parent.sapi.cacheSelection(); 
    2728                    $.get("html/paste.html", function(data) { 
    2829                        $.modal(data, { 
     
    3031                            overlay: 75, 
    3132                            onShow: function(dialog) { 
    32                                 $(".wym_dialog .wym_cancel").bind('click', function(e) { 
     33                                $(".wym_dialog .wym_cancel").bind('click', e.data, function(e) { 
     34                                    e.preventDefault(); 
    3335                                    $.modal.close(); 
     36                                    e.data.parent.sapi.restoreSelection(); 
    3437                                }); 
    3538                                $(".wym_dialog .wym_submit").bind('click', e.data, function(e) { 
    3639                                    e.preventDefault(); 
    3740                                    var editor = e.data.parent; 
     41                                    editor.sapi.restoreSelection(); 
    3842                                    var text = $("#paste_text").val(); 
    3943                                    if ($.trim(text) != "") 
  • branches/scott/0.6-a4/js/plugins/sapi/sapi.js

    r520 r521  
    221221    }; 
    222222     
     223    /** 
     224    * IMPORTANT: Because the selection/range object is part of the DOM, it is owned by  
     225    * the parent window of the document which contains it. Therefore, the selection  
     226    * within an editor must be cached within the scope of the parent window of the  
     227    * editor. This means that the selection object must be stored in the iframe's  
     228    * window. 
     229    */ 
     230     
    223231    sapi.prototype.cacheSelection = function() { 
    224         var w = this.parent._iframe.contentWindow; 
    225         var d = this.parent._doc; 
     232        $('#log').html('Caching selection<br />'); 
     233        var w = this.parent.docWindow; 
     234        var d = this.parent.doc; 
    226235        if (w.getSelection) { 
    227236            var selection = w.getSelection(); 
     
    248257    }; 
    249258     
    250     sapi.prototype.restoreSelection = function(index) { 
    251         var w = this.parent._iframe.contentWindow; 
    252         var d = this.parent._doc; 
     259    sapi.prototype.restoreSelection = function() { 
     260        $('#log').html($('#log').html()+'Re-storing selection<br />'); 
     261        var w = this.parent.docWindow; 
     262        var d = this.parent.doc; 
    253263        try {jQuery(d).focus();} catch(e) {} 
    254264        if (w._selection) { 
     
    269279     
    270280    sapi.replaceSelectionText = function(text) { 
    271         var w = this.parent._iframe.contentWindow; 
    272         var d = this.parent._doc; 
     281        var w = this.parent.docWindow; 
     282        var d = this.parent.doc; 
    273283        try {jQuery(d).focus();} catch(e) {} 
    274284        if (!w.getSelection &&  
     
    425435        { 
    426436            $.extend(p, { 
    427                 method: "compareEndPoints", 
     437                method:       "compareEndPoints", 
    428438                StartToStart: "StartToStart", 
    429                 StartToEnd: "StartToEnd", 
    430                 EndToEnd: "EndToEnd", 
    431                 EndToStart: "EndToStart" 
     439                StartToEnd:   "StartToEnd", 
     440                EndToEnd:     "EndToEnd", 
     441                EndToStart:   "EndToStart" 
    432442            }); 
    433443        }  
     
    435445        { 
    436446            $.extend(p, { 
    437                 method: "compareBoundaryPoints", 
     447                method:       "compareBoundaryPoints", 
    438448                StartToStart: 0, 
    439                 StartToEnd: 1, 
    440                 EndToEnd: 2, 
    441                 EndToStart: 3 
     449                StartToEnd:   1, 
     450                EndToEnd:     2, 
     451                EndToStart:   3 
    442452            }); 
    443453        } 
Note: See TracChangeset for help on using the changeset viewer.