Changeset 10768

Show
Ignore:
Timestamp:
04/30/08 02:37:43 (5 years ago)
Author:
drry
Message:
  • @include を制限しました。
  • ネイティヴ関数による高速化。
  • ほか。
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/userscripts/accesskeyremover.user.js

    r10727 r10768  
    11// ==UserScript== 
    22// @name          Accesskey remover 
    3 // @include       * 
     3// @include       http://* 
     4// @include       https://* 
    45// @namespace     http://www.bulkitem.com/userscript/ 
    56// @description   This script removes all accesskey attributes in HTML document. 
    6 // @version       0.1.4 
     7// @version       0.1.5 
    78// ==/UserScript== 
    89 
    910(function() { 
    10     var target = ['a', 'button', 'label', 'legend', 'input', 'textarea']; 
    11     var len = target.length; 
    12     for (var i=0; i<len; i++) { 
    13         var nodes = document.getElementsByTagName(target[i]); 
    14         var node_len = nodes.length; 
    15         for (var j=0; j<node_len; j++) { 
    16             if (nodes.item(j).getAttribute('accessKey')) { 
    17                 var dup_node = nodes.item(j).cloneNode(true); 
    18                 dup_node.removeAttribute('accessKey'); 
    19                 nodes.item(j).parentNode.replaceChild(dup_node, nodes.item(j)); 
    20             } 
     11    'a button label legend input textarea'.split(/\s+/).forEach(function(tag) { 
     12        if (typeof Array.forEach == "function") { 
     13            Array.forEach(document.getElementsByTagName(tag), removeAccessKey); 
     14            return; 
    2115        } 
     16        var nodes = document.getElementsByTagName(tag); 
     17        var i = nodes.length; 
     18        while (i--) { 
     19            removeAccessKey(nodes.item(i)); 
     20        } 
     21    }); 
     22 
     23    function removeAccessKey(node) { 
     24        if (!node.hasAttribute('accessKey')) { 
     25            return; 
     26        } 
     27        var dup_node = node.cloneNode(true); 
     28        dup_node.removeAttribute('accessKey'); 
     29        node.parentNode.replaceChild(dup_node, node); 
    2230    } 
    2331})();