load_namumark.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. function get_link_state(data, i = 0) {
  2. if(document.getElementsByClassName(data + 'link_finder')[i]) {
  3. var link_data = document.getElementsByClassName(data + 'link_finder')[i];
  4. var xhr = new XMLHttpRequest();
  5. xhr.open("GET", link_data.href.replace('/w/', '/api/w/').replace(/#([^#]*)/, '') + "?exist=1", true);
  6. xhr.send(null);
  7. xhr.onreadystatechange = function() {
  8. if(this.readyState === 4 && this.status === 200) {
  9. if(JSON.parse(this.responseText)['exist'] !== '1') {
  10. document.getElementsByClassName(data + 'link_finder')[i].id = "not_thing";
  11. } else {
  12. document.getElementsByClassName(data + 'link_finder')[i].id = "";
  13. }
  14. get_link_state(data, i + 1);
  15. }
  16. }
  17. }
  18. }
  19. function get_file_state(data, i = 0) {
  20. if(document.getElementsByClassName(data + 'file_finder_1')[i]) {
  21. var file_data = document.getElementsByClassName(data + 'file_finder_1')[i];
  22. var xhr = new XMLHttpRequest();
  23. xhr.open("GET", file_data.src.replace('/image/', '/api/image/'), true);
  24. xhr.send(null);
  25. xhr.onreadystatechange = function() {
  26. if(this.readyState === 4 && this.status === 200) {
  27. if(JSON.parse(this.responseText)['exist'] !== '1') {
  28. document.getElementsByClassName(data + 'file_finder_1')[i].style = "display: none;";
  29. } else {
  30. document.getElementsByClassName(data + 'file_finder_2')[i].innerHTML = "";
  31. }
  32. get_file_state(data, i + 1);
  33. }
  34. }
  35. }
  36. }
  37. function load_include(title, name, p_data) {
  38. var o_data = document.getElementById(name);
  39. var change = '';
  40. for(key in p_data) {
  41. change += '@' + p_data[key][0].replace('&', '<amp>') + '@,' + p_data[key][1].replace(',', '<comma>').replace('&', '<amp>') + ','
  42. }
  43. var url = "/api/w/" + encodeURI(title) + "?include=" + name + "&change=" + change;
  44. var xhr = new XMLHttpRequest();
  45. xhr.open("GET", url, true);
  46. xhr.send(null);
  47. xhr.onreadystatechange = function() {
  48. if(this.readyState === 4 && this.status === 200) {
  49. if(this.responseText === "{}\n") {
  50. o_data.innerHTML = "";
  51. document.getElementsByClassName(name)[0].id = "not_thing";
  52. } else {
  53. var o_p_data = JSON.parse(this.responseText);
  54. var g_data = o_p_data['data'];
  55. o_data.innerHTML = g_data;
  56. eval(o_p_data['js_data']);
  57. }
  58. }
  59. }
  60. }