Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 11th, 2012  |  syntax: None  |  size: 1.22 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. // ==UserScript==
  2. // @name           select2checkbox
  3. // @match          http://*/*
  4. // ==/UserScript==
  5. (function(){
  6.  
  7. var CHECKBOX_TEMPLATE = '<label><input type="checkbox" name="%name" value="%value" /><span style="margin-left:5px;">%text</span></label></br>';
  8. var div = document.createElement('div');
  9. var select = document.querySelector('#components');
  10. var name = select.name;
  11. var options = Array.prototype.slice.apply(select.options);
  12.  
  13. // convert select to checkbox
  14. var injectHTML = "";
  15. for(var i=0;i<options.length;i++){
  16.     var html = CHECKBOX_TEMPLATE;
  17.     html = html.replace('%name', name);
  18.     html = html.replace('%value', options[i].value);
  19.     html = html.replace('%text', options[i].innerHTML);
  20.     injectHTML += html;
  21. }
  22. div.innerHTML = injectHTML;
  23.  
  24. // create revert link
  25. var revertLink = document.createElement('a');
  26. revertLink.href = "javascript:void(null)";
  27. revertLink.innerHTML = "元に戻す";
  28. revertLink.addEventListener('click', function(){
  29.     div.style.display = "none";
  30.     revertLink.style.display = "none";
  31.     select.style.display = "";
  32. });
  33.  
  34. // select box hide
  35. select.style.display = "none";
  36.  
  37. // insert
  38. var injectElement = select.parentNode.insertBefore(div, select);
  39. select.parentNode.insertBefore(revertLink, select);
  40.  
  41. })();