atcoder_all_open

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

当前为 2021-04-25 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name atcoder_all_open
  3. // @namespace jp.misw
  4. // @author hotman
  5. // @description 問題Tabの隣に全ての問題を(ワンクリックで)開く全ての問題Tabを作成します。うまく動かない場合はatcoder上でのポップアップ制限を外して下さい
  6. // @version 1.0.6
  7. // @include https://atcoder.jp/contests/*
  8. // @exclude https://atcoder.jp/contests/
  9. // @exclude https://atcoder.jp/contests/archive
  10. // @grant none
  11. // @description 問題Tabの隣に全ての問題を(ワンクリックで)開く全ての問題Tabを作成します。うまく動かない場合はatcoder上でのポップアップ制限を外して下さい
  12. // ==/UserScript==
  13.  
  14.  
  15. function toURL(){
  16. var url=location.href;
  17. var contest_name=location.href.split('/')[4];
  18. var req=`https://asia-northeast1-atcoder-all-open-api.cloudfunctions.net/api?id=${contest_name}`;
  19. let xhr = new XMLHttpRequest();
  20. xhr.open('GET',req);
  21. xhr.onload = () => {
  22. let res = JSON.parse(xhr.response);
  23. for(let url in res){
  24. window.open(url);
  25. }
  26. }
  27. xhr.send();
  28. }
  29.  
  30.  
  31. function all_open(){
  32. var url=location.href;
  33. var parent=document.getElementsByClassName("nav nav-tabs")[0];
  34. var add=document.createElement("li");
  35. parent.insertBefore(add,parent.children[2]);
  36. var a=document.createElement("a");
  37. add.appendChild(a);
  38. a.textContent="全ての問題";
  39. a.setAttribute("href","javascript:void(0);");
  40. a.addEventListener('click',toURL, false);
  41. }
  42. all_open();