Show
Ignore:
Timestamp:
12/03/08 19:59:53 (5 weeks ago)
Author:
whym
Message:

fix

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/userchrome/ToggleAllInSelection.uc.js

    r25761 r25784  
    66// @author       Whym 
    77// @version      1.0.20081203 
    8 // @homepage     http://www.xuldev.org/misc/ucjs.php 
     8// @homepage     http://coderepos.org/share/browser/lang/javascript/userchrome 
     9// @compatibility  Firefox 3.0 
     10// @include        chrome://browser/content/browser.xul 
     11// @note            
    912// ==/UserScript== 
    1013 
     
    1417        var menuitem = document.getElementById(eltID); 
    1518 
    16  
    1719        if (!menuitem) { 
    1820            var _toggleall = function(event) { 
    19                 var sel = content.getSelection(); 
     21                var sel = window.content.getSelection(); 
    2022                if (!sel) { return; } 
    2123                for ( var i=0; i < sel.rangeCount; i++ ) { 
    2224                    var range = sel.getRangeAt(i); 
    23                     var iter = document.createTreeWalker(range.commonAncestorContainer, NodeFilter.SHOW_ELEMENT, null, false); 
    24                     while(iter.nextNode() && iter.currentNode != range.startContainer){ // skip until startnode of selection 
    25                     } 
    26                     iter.previousNode(); 
    27                     while(iter.nextNode()){ 
    28                         var n = iter.currentNode; 
    29                         if(n.tagName == "INPUT" && n.type.toLowerCase() =="checkbox") { 
    30                             n.checked = !n.checked; // toggle 
     25                    var set = range.commonAncestorContainer.getElementsByTagName("INPUT"); 
     26                    for ( var j=0; j < set.length; j++ ) { 
     27                        var n = set[j]; 
     28                        if ( sel.containsNode(n,true) ) { 
     29                            if(n.tagName == "INPUT" && n.type.toLowerCase() == "checkbox") { 
     30                                n.checked = !n.checked; 
     31                            } 
    3132                        } 
    32                         if( n == range.endContainer ){break;} 
     33                        if ( n == range.endContainer ) { 
     34                            break; 
     35                        } 
    3336                    } 
    3437                }