yosupo judge copy button

yosupo judgeのサンプルinputにコピーボタンをつけます。

  1. // ==UserScript==
  2. // @name yosupo judge copy button
  3. // @version 1
  4. // @grant none
  5. // @author tomboftime
  6. // @namespace https://twitter.com/tomboftime
  7. // @description yosupo judgeのサンプルinputにコピーボタンをつけます。
  8. // @match https://judge.yosupo.jp/problem/*
  9. // @require https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js
  10. // ==/UserScript==
  11. new ClipboardJS('.btn');
  12.  
  13. var pres = document.getElementsByTagName('pre');
  14.  
  15. for (var i = 0; i < pres.length; i++) {
  16. var pre = pres[i];
  17. if (pre.childElementCount == 0){
  18. //console.log(pre);
  19. var data = pre.childNodes[0].data;
  20. //console.log(data);
  21. var button = document.createElement("button");
  22. button.className = 'btn';
  23. button.innerHTML = "copy";
  24. button.setAttribute("data-clipboard-text",data);
  25. pre.parentNode.insertBefore(button, pre);
  26. }
  27. }