Show
Ignore:
Timestamp:
12/04/08 02:12:39 (5 weeks ago)
Author:
drry
Message:
  • XHTML に対応しました。
  • disabled 付きのチェックボックスを対象外にしました。
  • ほか。
Files:
1 modified

Legend:

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

    r25784 r25814  
    11// ==UserScript== 
    2 // @name         Toggle all in selection 
    3 // @namespace    http://www.xuldev.org/ 
    4 // @description  Adds 'Toggle all' menu to the context menu. 
    5 // @include      main 
    6 // @author       Whym 
    7 // @version      1.0.20081203 
    8 // @homepage     http://coderepos.org/share/browser/lang/javascript/userchrome 
    9 // @compatibility  Firefox 3.0 
    10 // @include        chrome://browser/content/browser.xul 
    11 // @note            
     2// @name          Toggle all in selection 
     3// @namespace     http://coderepos.org/share/browser/lang/javascript/userchrome 
     4// @description   Adds 'Toggle all' menu to the context menu. 
     5// @include       chrome://browser/content/browser.xul 
     6// @author        Whym 
     7// @version       1.0.20081204 
     8// @compatibility Gecko 1.9.0 
     9// @note           
    1210// ==/UserScript== 
    1311 
    14 document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", function(event) { 
    15         const eltID = "toggleallinselection-menuitem"; 
    16         var menupopup = event.originalTarget; 
    17         var menuitem = document.getElementById(eltID); 
     12document.getElementById("contentAreaContextMenu") 
     13        .addEventListener("popupshowing", function(event) { 
     14    const eltID = "toggleallinselection-menuitem"; 
     15    var menupopup = event.originalTarget; 
     16    var menuitem = document.getElementById(eltID); 
    1817 
    19         if (!menuitem) { 
    20             var _toggleall = function(event) { 
    21                 var sel = window.content.getSelection(); 
    22                 if (!sel) { return; } 
    23                 for ( var i=0; i < sel.rangeCount; i++ ) { 
    24                     var range = sel.getRangeAt(i); 
    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                             } 
    32                         } 
    33                         if ( n == range.endContainer ) { 
    34                             break; 
    35                         } 
     18    if ( !menuitem ) { 
     19        let _toggleall = function(event) { 
     20            var sel = window.content.getSelection(); 
     21            if ( !sel ) { return; } 
     22            var i = sel.rangeCount; 
     23            while ( i --> 0 ) { 
     24                let range = sel.getRangeAt(i); 
     25                let set = range.commonAncestorContainer 
     26                               .getElementsByTagName("input"); 
     27                for ( let i = set.length; i --> 0; ) { 
     28                    let n = set[i]; 
     29                    if ( sel.containsNode(n, true) && 
     30                         n.tagName.toUpperCase() == "INPUT" && 
     31                         !n.disabled && 
     32                         n.type.toLowerCase() == "checkbox" ) { 
     33                        n.checked = !n.checked; 
     34                    } 
     35                    if ( n == range.endContainer ) { 
     36                        break; 
    3637                    } 
    3738                } 
    38             }; 
    39             menuitem = document.createElement("menuitem"); 
    40             menuitem.id = eltID; 
    41             menuitem.setAttribute("label", "Toggle all"); 
    42             menuitem.setAttribute("accesskey", "T"); 
    43             menuitem.addEventListener("command", _toggleall, false); 
    44             var refChild = document.getElementById("context-selectall") || menupopup.lastChild; 
    45             menupopup.insertBefore(menuitem, refChild.nextSibling); 
    46         } 
    47         menuitem.hidden = event.isTextSelected; 
    48     }, false); 
     39            } 
     40        }; 
     41        menuitem = document.createElement("menuitem"); 
     42        menuitem.id = eltID; 
     43        menuitem.setAttribute("label", "Toggle all"); 
     44        menuitem.setAttribute("accesskey", "T"); 
     45        menuitem.addEventListener("command", _toggleall, false); 
     46        let refChild = document.getElementById("context-selectall") || 
     47                       menupopup.lastChild; 
     48        menupopup.insertBefore(menuitem, refChild.nextSibling); 
     49    } 
     50    menuitem.hidden = event.isTextSelected; 
     51}, false);