load_namumark.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. var o_p_data = JSON.parse(this.responseText);
  50. var g_data = o_p_data['data'];
  51. o_data.innerHTML = g_data;
  52. js_data = o_p_data['js_data'];
  53. js_data = js_data.replace(/<script>/g, '');
  54. js_data = js_data.replace(/<\/script>/g, '\n');
  55. eval(js_data)
  56. }
  57. }
  58. }