atcoder_all_open

問題Tabの隣に全ての問題を(ワンクリックで)開く全ての問題Tabを作成します。うまく動かない場合はatcoder上でのポップアップ制限を外して下さい

La data de 03-08-2020. Vezi ultima versiune.

  1. // ==UserScript==
  2. // @name atcoder_all_open
  3. // @namespace jp.misw
  4. // @author hotman
  5. // @description:ja 問題Tabの隣に全ての問題を(ワンクリックで)開く全ての問題Tabを作成します。うまく動かない場合はatcoder上でのポップアップ制限を外して下さい
  6. // @version 1.0.3
  7. // @include https://atcoder.jp/contests/*
  8. // @grant none
  9. // @description 問題Tabの隣に全ての問題を(ワンクリックで)開く全ての問題Tabを作成します。うまく動かない場合はatcoder上でのポップアップ制限を外して下さい
  10. // ==/UserScript==
  11.  
  12.  
  13. function toURL(){
  14. var url=location.href;
  15. var cnt=document.getElementsByClassName("table table-bordered table-striped")[0].children[1].childElementCount;
  16. var test_name=location.href.split('/')[4];
  17. if(url.match(/atcoder.jp\/contests\/..*\/tasks/) != null ) {
  18. for(var i=0;i<cnt;i++){
  19. window.open('https://atcoder.jp/contests/'+test_name+'/tasks/'+test_name+'_'+String.fromCharCode('a'.charCodeAt(0)+i));
  20. }
  21. }else{
  22. window.open('https://atcoder.jp/contests/'+test_name+'/tasks\/?all_open=yes');
  23. }
  24. }
  25.  
  26.  
  27. function all_open(){
  28. var url=location.href;
  29. console.log(url);
  30. if(url.match(/all_open=yes/) != null ){
  31. toURL();
  32. window.open('about:blank','_self').close();
  33. }else{
  34. var parent=document.getElementsByClassName("nav nav-tabs")[0];
  35. var add=document.createElement("li");
  36. parent.insertBefore(add,parent.children[2]);
  37. var a=document.createElement("a");
  38. add.appendChild(a);
  39. a.textContent="全ての問題";
  40. a.setAttribute("href","javascript:void(0);");
  41. a.addEventListener('click',toURL, false);
  42. }
  43. }
  44. all_open();