pywebio.js 972 B

1234567891011121314151617181920212223242526272829303132
  1. let DEMO_URL;
  2. if (localStorage.getItem('pywebio_doc_demo_url'))
  3. DEMO_URL = localStorage.getItem('pywebio_doc_demo_url');
  4. else
  5. DEMO_URL = 'http://pywebio-demos.wangweimin.site/?pywebio_api=doc_demo';
  6. var parseHTML = function (str) {
  7. let tmp = document.implementation.createHTMLDocument();
  8. tmp.body.innerHTML = str;
  9. return tmp.body.children;
  10. };
  11. function ready(fn) {
  12. if (document.readyState != 'loading') {
  13. fn();
  14. } else {
  15. document.addEventListener('DOMContentLoaded', fn);
  16. }
  17. }
  18. let demo_url = new URL(DEMO_URL);
  19. ready(function () {
  20. let codes = document.querySelectorAll('.demo-cb');
  21. for (let c of codes) {
  22. let id = c.getAttribute('id');
  23. let ele = c.querySelector('.highlight > pre');
  24. demo_url.searchParams.set("app", id);
  25. let node = parseHTML(`<a class="viewcode-back" href="${demo_url.href}" target="_blank">[Demo]</a>`)[0];
  26. ele.insertBefore(node, ele.firstChild);
  27. }
  28. });